2016年の発売直後から大きな話題を呼び、中国・ドイツ・韓国・ブラジル・ロシア・ベトナムなど世界各国にも広がった「学び直し本」の圧倒的ロングセラーシリーズ「Big Fat Notebook」の日本版が刊行された。藤原和博氏(朝礼だけの学校 校長)「プログラミングは新しい言語の獲得だ」、野田クリスタル氏(お笑い芸人・マヂカルラブリー)「プログラミングがやりたくなる! まるでゲームの攻略本みたい!」、尾原和啓氏(元グーグル・IT評論家)「プログラミングを通して、ビジネスにも応用できる考え方が見えてくる!」と絶賛されている。本記事では、全世界700万人が感動した同シリーズのプログラミング編『アメリカの中学生が学んでいる 14歳からのプログラミング』より、本文の一部を抜粋・掲載します。(初出:2022年7月20日)

セキュリティ

サイバーセキュリティって何?

 サイバーセキュリティとは、デジタル情報の安全を守るのに必要なセキュリティのこと。もう少しくわしくいえば、情報の機密性、可用性、完全性を保つのに使われる一連の手法やしくみのことだ。

男の子

機密性:他人と共有しちゃいけない情報のプライバシーが守られていること。

可用性:コンピュータに保存されているファイルや情報に許可されたユーザーがいつでもアクセスできること。だれかが、コンピュータを使えなくするウイルスをきみのコンピュータに感染させたとしたら、きみの情報の可用性が損なわれたことになる。

許可されたユーザーの解説

完全性:コンピュータ上のファイルや情報が、許可されたユーザー以外によって、決して変更されないこと。だれかが、きみのソーシャルメディアサイトのパスワードを勝手に変更して、きみとしてログオンしたとしたら、きみのアカウントの完全性が損なわれたことになる。

ウイルスの解説

サイバーセキュリティの手法

 サイバーセキュリティの手法を使えば、こんなことができる。

・まちがった人々が情報にアクセスするのを防ぐ
・許可されたユーザー以外が情報を手に入れても、その情報を使えないようにする

泥棒

認証

 認証とは、だれかに情報へのアクセスを与える前に、その人の本人確認をするプロセスのこと。コンピュータでは、次のように、いろんな種類の認証が使われる。

・ユーザー名とパスワードをたずねる
・指紋を読み取る
・カメラを使ってきみの顔を認識する

 二要素認証とは、2種類の認証を組み合わせた認証のこと。

二要素認証の具体例(『アメリカの中学生が学んでいる 14歳からのプログラミング』より)

アクセス制御

 アクセス制御とは、特定のファイルに、許可されたユーザーだけがアクセスできるようにすること。きみが学校で使うユーザーアカウントを持っているとしたら、きみ自身の宿題や成績表などにはアクセスできるけれど、先生のアカウントにアクセスして、勝手にきみの成績を変更したり、ほかの生徒の情報を見たり、来週のテストをダウンロードしたりはできない。

 アクセス制御の目的とは、認証のしくみを使って、データを見る権限のない人々が、データにアクセスできないようにすることなのだ。

サンドボックス

 サンドボックスとは、アプリケーションを残りのシステムへのアクセスが制限された、コンピュータシステムの安全な領域へと閉じ込めること。そうすれば、まんがいちそのアプリケーションが攻撃されても、被害を受けるのはそのアプリケーションだけで、残りのシステムの安全はおびやかされないからだ。

サンドボックス(『アメリカの中学生が学んでいる 14歳からのプログラミング』より)

暗号技術

 暗号技術は、情報の機密性を保つための戦略のひとつ。

 暗号技術の目的は、情報やメッセージをぐちゃぐちゃにして、許可されたユーザー以外、元に戻して読めないようにすることだ。そうすれば、アクセス制御に加えてもうひとつ、強力なセキュリティが加わる。まんがいち、許可されていないユーザーが秘密のファイルにアクセスできたとしても、内容を読むことはできないからだ。

泥棒(『アメリカの中学生が学んでいる 14歳からのプログラミング』より)

 このように、情報をぐちゃぐちゃにすることを暗号化、元の形に戻すことを復号という。暗号化とは、読むことのできる情報を、秘密のメッセージへと変換するプロセス。復号(解読)とは、秘密のメッセージを読むことのできる情報へと戻すプロセスだ。

 暗号とは、情報を鍵を持つ人以外には読めないようにするツールのこと。鍵は、暗号化されたメッセージを復号するために、暗号と一緒に使われる。また、暗号は、秘密のメッセージを元の読める形へと戻すのにも使われる。

 たとえば、銀行のウェブサイトは、暗号を使って、コンピュータとサーバのあいだで送信される顧客の口座情報を変換しているのだ。

スパイ(『アメリカの中学生が学んでいる 14歳からのプログラミング』より)

 実は、暗号は、コンピュータよりもずっと歴史が深い。古代ローマの独裁者、ユリウス・カエサル(紀元前100年~紀元前44年)は、世界最古の暗号のひとつを使っていたことで知られる。

 彼の名前にちなんで名づけられたシーザー暗号(カエサルを英語読みするとシーザー)は、それぞれのアルファベットを一定の文字数ぶんだけアルファベット順にずらしたものだ。アルファベット順に3文字ぶんずらしたのが、下の例だ。

シーザー暗号(『アメリカの中学生が学んでいる 14歳からのプログラミング』より)
(『アメリカの中学生が学んでいる 14歳からのプログラミング』より)

 たとえば、上のシーザー暗号を使って、「Hello World」を暗号化すると、「Khoor Zruog」になる。暗号文「Khoor Zruog」を復号するには、鍵を逆向きに使い、それぞれの文字を逆アルファベット順に3文字ぶん、ずらせばいい。シーザー暗号は、人間でも簡単に解読できる。ましてや、コンピュータなら一瞬だ。

(『アメリカの中学生が学んでいる 14歳からのプログラミング』より)

 第二次世界大戦中(1939~1945年)、ドイツ軍は、エニグマという機械を使って、シーザー暗号を改良したという。エニグマでは、いくつもの暗号の複雑な組み合わせが使われた。入力された文字は、それぞれ何重もの暗号化がほどこされ、次の文字では鍵そのものが変わる。

 つまり、元のメッセージのなかにあるまったく同じふたつの文字が、暗号文では別々の文字に変わるというわけだ。

(『アメリカの中学生が学んでいる 14歳からのプログラミング』より)
(『アメリカの中学生が学んでいる 14歳からのプログラミング』より)