定義
誰でも読める普通の文章やデータを、特別なルールを使ってちんぷんかんぷんな文字列に変える技術です。こうして変えられた情報は、正しい解除用の鍵がなければ、第三者がのぞき見たり途中で横取りしたりしても、何が書いてあるのかまったく分かりません。
秘密の日記帳と暗号の箱
子どもの頃、友だちと秘密のメモを交換するときに、文字を一つずつ後ろにずらして書いたことはありませんか。「あ」を「い」に、「い」を「う」に書き換えれば、二人だけのルールを知らない別の友だちは、メモを拾っても中身を読めませんでしたよね。
デジタルの世界で情報を守る方法も、まったく同じです。メッセージアプリで友だちに送る写真や文章、銀行アプリで入力する口座の暗証番号を、第三者には読み取れない宇宙語のような乱数にかき混ぜて送る。この過程が暗号化です。
暗号に変わった情報を元の文字に戻す過程は「復号(暗号を解くこと)」と呼びます。秘密のルールや、錠を開ける「鍵(キー)」を持っている人だけが、このぐちゃぐちゃな文字を普通の文章に戻して読めるのです。
もう少し正確にいうと:共通鍵と公開鍵
私たちが使う錠前は、かけるときの鍵と開けるときの鍵が同じです。これをコンピューターの分野では共通鍵暗号方式と呼びます。とても高速ですが、遠く離れた相手に鍵をこっそり渡すのが難しいという致命的な弱点があります。配達員が鍵をのぞき見たら、そこで終わりですから。
そこで現代のコンピューター科学は、うまい解決策を見つけました。かける鍵と開ける鍵を別々に作る「公開鍵(非対称鍵)」方式です。誰にでも公開されている「錠前(公開鍵)」で箱をロックして送れば、自分だけが持っている「本物の鍵(秘密鍵)」でしか開けられない、という仕組みです。
今日のネットバンキングやウェブサイトの安全な接続は、この二つの方式を賢く組み合わせています。公開鍵を使って共通鍵を安全に分け合い、実際の大きなデータは高速な共通鍵で暗号化してやり取りするのです。
知らないうちに働いているデジタルの盾
ウェブサイトのアドレスが「https://」で始まっていれば(ブラウザによっては鍵のアイコンでも表示されます)、暗号化された接続であるという合図です。ただし、それは通信が暗号化されているというだけで、そのサイトを信用してよいという保証ではありません。もし暗号化がなければ、カフェの公衆Wi-Fiを使うとき、近くにいるハッカーに自分のIDやパスワード、カード番号を画面を見るようにまる見えにされてしまいます。
一部のメッセンジャーが使う「エンドツーエンド暗号化(End-to-End Encryption)」もとても強力です。メッセージは自分のスマホを離れた瞬間に暗号でロックされ、受け取る友だちのスマホに届いて初めて解かれます。メッセンジャーを運営する会社やサーバーの管理者でさえ、途中で会話の内容をのぞき見られないように設計されています。ただし、誰がいつ会話したかといった情報や、両端のスマホ自体が乗っ取られる場合までは防げません。
スマホに保存された写真や連絡先も、保存装置ごとまるごと暗号化されて保管されています。スマホをなくしても、パスワードや生体認証を突破できなければ、チップの中のデータを無理やり取り出しても何の意味もない数字のかすにしか見えません。
よくある誤解
パスワードを難しくしさえすれば、データはひとりでに安全になる。
パスワードは利用者を確認する門番にすぎません。データそのものを暗号化せず、平文のまま送ると、通信の途中でハッカーに横取りされ、そのまま読まれてしまいます。
日常で出会う場面
ウェブサイトのアドレスが「https://」で始まっていれば(ブラウザによっては鍵のアイコン)、通信内容が暗号化されて守られています。
WhatsAppやSignalのように、すべての会話にエンドツーエンド暗号化をかけるメッセンジャーがあります。通常のチャットではなく、別に選ぶ「シークレットチャット」でだけエンドツーエンド暗号化がかかるサービスもあります。
紛失したスマホのメモリーチップを取り外して別の機器につないでも、暗号化のおかげでファイルの中身は見られません。
つまり ひとことで
暗号化は、大切な情報を鍵なしでは読めないようにかき混ぜて守る技術です。