暗号のしくみを体験しよう

文字をずらすだけの古典的な暗号から、いまインターネットを支えている公開鍵暗号まで。

文字を決まった数だけずらす暗号

3

結果

元の文(平文)

暗号化した文(暗号文)

文字の対応表

鍵を知らなくても、総当たりで解読できます

ずらす数は25通りしかないので、すべて試せば必ず解けます。意味の通る行を探してください。

25通りすべて試した結果

緑で示した行は、英語としてありそうな単語を含んでいるものです。

ここが弱点です。 鍵の種類が25通りしかないため、総当たりで一瞬に解かれてしまいます。 現代の暗号が鍵を長くしているのは、この総当たりを現実的に不可能にするためです。

方式を選んでください

👩
送信者
—
→
🕵️
盗み見する人
—
→
🧑
受信者
—

2つの方式の比較

  共通鍵暗号 公開鍵暗号
鍵の数 1つ(同じ鍵で暗号化と復号) 2つ(公開鍵と秘密鍵の組)
鍵を渡す必要 ある(ここが弱点) ない(公開鍵は公開してよい)
処理の速さ 速い 遅い
代表的な方式 AES RSA、楕円曲線暗号

実際のHTTPS通信では、両方を組み合わせています。最初に公開鍵暗号で共通鍵を安全に渡し、そのあとは速い共通鍵暗号でやり取りする、という方法です。

暗号とは何か

手紙を誰かに届けたいとき、途中で誰かに読まれては困る内容があります。そこで、決まった規則で文章を別の形に変え、規則を知らない人には意味が分からなくします。これが暗号です。

元の文章を平文、変換したものを暗号文、変換の規則で使う情報を鍵といいます。暗号文から平文に戻すことを復号といいます。

シーザー暗号 ― 最も古い暗号のひとつ

古代ローマの将軍ユリウス・カエサル(シーザー)が使ったと伝えられる方法です。アルファベットを決まった数だけずらすだけの、単純な仕組みです。

3つずらす場合、AはDに、BはEに、CはFになります。ZまでいったらAに戻ります。「HELLO」なら「KHOOR」です。

暗号化:(文字の番号 + 鍵)を26で割った余り

この方式では、ずらす数が鍵にあたります。受け取った側は同じ数だけ逆にずらせば、元の文章に戻せます。

なぜ現代では使えないのか

鍵の種類が25通りしかないからです。ずらす数は1から25までのどれかなので、全部試しても25回で済みます。人間が手作業でやっても数分、コンピュータなら一瞬です。

暗号の強さは、鍵の種類の多さで決まります。現代の暗号では、鍵の候補が天文学的な数になるよう設計されています。たとえばAESという方式では、128ビットの鍵を使います。組み合わせは2の128乗、約340澗(かん)通りです。すべて試すのは、現在のコンピュータでは不可能です。

共通鍵暗号 ― 同じ鍵を共有する

暗号化と復号に同じ鍵を使う方式です。シーザー暗号もこの仲間です。現代ではAES(エーイーエス)が広く使われています。

計算が速いという大きな利点があります。大量のデータをやり取りする通信では、この速さが重要になります。

鍵配送問題

しかし、根本的な問題があります。相手に鍵をどうやって渡すのかという問題です。

鍵を通信路で送れば、途中で盗み見される可能性があります。暗号文を守るために暗号を使うのに、その鍵を守る手段がない。これを鍵配送問題といいます。

直接会って手渡しできるならよいのですが、インターネットで初めてアクセスするサイトと、事前に鍵を共有しておくことはできません。上のツールで実際に何が起きるか確かめられます。

公開鍵暗号 ― 発想の転換

この問題を解決したのが公開鍵暗号です。1970年代に考案された、暗号史における大きな転換点でした。

鍵を2つ用意します。公開鍵と秘密鍵です。この2つは対になっていて、次の性質を持ちます。

そのため、公開鍵は誰に見られても構いません。むしろ公開してよいので「公開鍵」と呼びます。秘密鍵だけを自分の手元に隠しておけば安全です。

受信者は公開鍵を配り、送信者はそれで暗号化して送ります。途中で盗み見されても、復号できるのは秘密鍵を持つ受信者だけです。鍵を渡す必要がなくなったのが、この方式の画期的な点です。

なぜ元に戻せないのか

公開鍵暗号は、計算しやすいが逆算しにくい問題を利用しています。RSAという方式では、素因数分解の難しさを使っています。

大きな素数を2つ掛け合わせるのは簡単です。しかし、その積から元の2つの素数を求めるのは、桁数が大きくなると現実的な時間では不可能になります。この非対称性が、公開鍵と秘密鍵の関係を支えています。

実際のインターネットでは

公開鍵暗号には欠点があります。計算が遅いのです。ウェブページのすべてのデータをこの方式で暗号化すると、通信に時間がかかりすぎます。

そこでHTTPS(TLS)では、両方の良いところを組み合わせています。

  1. 最初に、公開鍵暗号を使って共通鍵を安全に共有する
  2. そのあとの通信は、速い共通鍵暗号でやり取りする

これをハイブリッド暗号方式といいます。ブラウザのアドレスバーに鍵マークが表示されているとき、裏側でこの仕組みが動いています。

さらにTLSでは、通信相手が本物かを確かめる認証と、途中で書きかえられていないかを確かめる改ざん検知も同時に行っています。暗号化だけでは「相手が偽物」という問題は防げないためです。

電子署名 ― 暗号のもう一つの使い方

公開鍵暗号には、暗号化とは逆の使い方もあります。秘密鍵で処理し、公開鍵で確かめるという方法です。

秘密鍵を持っているのは本人だけなので、正しく処理できたということは本人が作成したことの証明になります。これが電子署名です。紙の書類における印鑑やサインにあたります。

電子署名は2つのことを同時に示します。1つは、その人が作成したという本人性。もう1つは、途中で書きかえられていないという完全性です。ソフトウェアの配布元が正しいかを確かめる仕組みや、ウェブサイトの証明書にも使われています。

ハッシュ関数

暗号と関係の深い技術に、ハッシュ関数があります。任意の長さのデータから、決まった長さの値を計算する関数です。

特徴は3つあります。同じデータからは必ず同じ値が出ること、少しでもデータが違えば全く違う値になること、そして値から元のデータを求められないことです。

この性質から、パスワードの保存やファイルの改ざん検出に使われます。パスワードそのものを保存せず、ハッシュ値だけを保存しておけば、流出しても直接は悪用されません。暗号と違い、もとに戻すことを目的としていないのが大きな違いです。

使い方

© 2026 情報ラボ ホーム カリキュラム対応表 画像のデジタル化 音のデジタル化 ラスタとベクタ 画像のビット演算 色の表し方 2進数・16進数 文字コード データはすべて0と1 パリティマジック コンピュータのしくみ 論理回路 アルゴリズム ネットワークのしくみ 電子メールのしくみ 情報システムとデータの流れ シミュレーション データの分析 機械学習 回帰と予測 クラスタリング 統計的推測 パスワードの強さ 暗号のしくみ あやしいメールを見分ける データ量の計算 データ圧縮 JPEGのくり返し保存 運営者情報・お問い合わせ プライバシーポリシー 更新履歴