【図解】共通鍵暗号方式と公開鍵暗号方式の仕組み・特徴
インターネットの世界では
- 色々な情報を瞬時に検索可能
- 実際に店舗に行かずにオンラインショッピングが可能
- インターネットに繋がっている端末さえ保有していれば誰とでも通信可能
という大きなメリットがある一方、悪意ある第三者によって
- メールのやりとり
- オンラインショッピングでの会員登録情報 等々
の通信の中身を盗聴、悪用の被害を受ける可能性もあります。
悪意ある第三者からの盗聴を防ぐセキュリティ対策の一つとして、インターネット上での情報(データ)の送受信を暗号化することが挙げられます。
この記事では、情報(データ)を暗号化する技術の代表格である
- 共通鍵暗号方式
- 公開鍵暗号方式
それぞれの仕組み・特徴についてを図解で説明します。
説明後は、共通鍵暗号方式・公開鍵暗号方式の違いを比較します。
共通鍵暗号方式
- 共通鍵暗号方式の「共通鍵」
- 公開鍵暗号方式の
- 公開鍵
- 秘密鍵
と「鍵」という単語が頻出しますが、暗号化・復号化する為の手段としての「鍵」という意味であり、インターネット上で、実際に物理的(有形)な「鍵」をやり取りする訳ではありません。
実際の「鍵」の正体は、「鍵」のような役割を果たす無形資産(データ)です。
共通鍵暗号方式の仕組み
クライアント・サーバ・モデルを例にして、共通鍵暗号方式の一連の流れを見ていきます。
クライアント(Webブラウザ)(以下:送信者)から、Webサーバ(以下:受信者)へ通信内容を平文で送信した場合、悪意あるユーザにより通信内容を盗聴されてしまう可能性があります。
そこで、「共通鍵」を使用して通信内容を平文から>暗号文に変換します。
つまり、「共通鍵」が暗号化の手法になります。
共通鍵暗号方式の特徴は
- 平文 -> 暗号文 の変換(暗号化)に「共通鍵」が使用
- 暗号文 -> 平文 の変換(復号化)に「共通鍵」が使用
暗号化にも復号化にも「共通鍵」が使用されるという点です。
悪意あるユーザに通信内容を盗聴されない為に、送信者は「共通鍵」を使って、平文を暗号文に暗号化しましたが、受信者は、「共通鍵」を送信者から受け取れないと、暗号文を平文に復号化出来ません。
つまり、送信者は
- 暗号化した通信内容
- 「共通鍵」
両方を受信者に送る必要があります。
ここで、悪意あるユーザが「共通鍵」を入手出来れば、暗号文を平文に復号化する事が出来るため、通信内容は読み取られてしまいます。
共通鍵暗号方式の特徴
共通鍵暗号方式の特徴は
- 暗号化と復号化に共通の鍵を用いる暗号方式
- 共通の鍵を用いるため、計算ロジックが簡単・計算負荷が低い
- 「共通鍵」の受け渡しを工夫しないと、「共通鍵」が傍受され悪用される可能性がある = 鍵配送問題
共通鍵暗号方式で使用する暗号アルゴリズムには
- RC4
- DES
- AES 等々
があります。
現在主流の暗号アルゴリズムは「AES」です。
- 数学
- コンピューティング
- 言語学
- あるいは関連する分野
において、問題を解くための手順を定式化した形で表現したものです。
このアルゴリズムの説明を見ると少し難しそうですが、アルゴリズムを分かりやすく説明する為に例を出します。
上記の文字列は、僕が即席で作った暗号文です。
このままだと意味のある文章になっていません。
この文字列を平文にする為には、暗号文に書かれているアルファベットをアルファベット順で1つ前のアルファベットに置換します。
すると、理解出来る文章に変わりました。
つまり、「アルファベット順で1つ前のアルファベットに置換する」という法則・規則(アルゴリズム)を利用して平文を暗号文に変換したのです。
RC4 | DES | AES | |
---|---|---|---|
公式名称 | Rivest Cipher 4 | Data Encryption Standard | Advanced Encryption Standard |
開発者 | Ronald Linn Rivest (ロナルド・リベスト) | IBM | ・Joan Daemen (ホァン・ダーメン) ・Vincent Rijmen (フィンセント・ライメン) |
暗号 | ストリーム暗号 | ブロック暗号 | ブロック暗号 |
鍵長 | 40 – 2048 ビット | 56 ビット | 128,192,256 ビット |
・既に解読法が開示 ・非推奨 | ・アメリカの旧国家暗号規格 | ・DESに代わる新標準暗号 |
ストリーム暗号 | ブロック暗号 | |
---|---|---|
内容 | 平文をビット単位あるいはバイト単位などで逐次、暗号化する暗号 | 固定長のデータ(ブロックと呼ぶ)を単位として処理する暗号 |
ビット・バイトに関する記事はこちら
公開鍵暗号方式
公開鍵暗号方式の仕組み
公開鍵暗号方式では、
- 公開鍵
- 秘密鍵
二つの鍵が使われ、それぞれの特徴は
- 公開鍵・・・
- 秘密鍵でしか開錠出来ない錠みたいなもの
- 秘密鍵により複数作成可能
- 秘密鍵・・・
- 公開鍵を作成出来る鍵みたいなもの
- 公開鍵を開錠出来る唯一の手段
になります。
クライアント・サーバ・モデルを例にして、公開鍵暗号方式の一連の流れを見ていきます。
送信者が受信者に通信リクエストを送信します。
通信リクエストを受けた受信者が秘密鍵を利用して公開鍵を生成します。
受信者が生成した公開鍵を送信者に送ります。
送信者は公開鍵を使用して平文を暗号文に暗号化します。
公開鍵暗号方式は
- 平文 -> 暗号文 の変換(暗号化)に「公開鍵」
- 暗号文 -> 平文 の変換(復号化)に「秘密鍵」
という方式ですので、共通鍵暗号方式の様に公開鍵を受信者に送る必要がありません。
ここで、悪意あるユーザが公開鍵を入手したとしても、公開鍵では暗号文を平文に変換(復号化)出来ない為、通信内容を読み取られる事はありません。
受信者は送信者から送られてきた暗号文の通信内容を秘密鍵を使って平文に変換(復号化)します。
公開鍵暗号方式では、送受信者間での暗号文を平文に変換する「鍵」のやりとりはありませんが、受信者が秘密鍵を失くすと暗号文を平文に変換(復号化)する事は出来ません。
公開鍵暗号方式の特徴
公開鍵暗号方式の特徴は
- 暗号化・復号化に別個の鍵を用いて暗号化のための鍵を公開できるようにした暗号方式
- 共通鍵暗号方式の鍵配送問題を解決すべく開発された暗号方式
になります。
また、公開鍵暗号方式で使用する暗号アルゴリズムには
- DH
- RSA
- ECC 等々
があります。
DH | RSA | ECC | |
---|---|---|---|
公式名称 | Diffie-Hellman key exchange | Rivest Shamir Adleman | Elliptic Curve Cryptography (楕円曲線暗号) |
開発者 | ・Martin Edward Hellman (マーティン・ヘルマン) ・Bailey Whitfield Diffie (ホイットフィールド・ディフィー) | ・Ronald Linn Rivest (ロナルド・リベスト) ・Adi Shamir (アディ・シャミア) ・Leonard Max Adleman (レオナルド・エーデルマン) | ・Victor Miller (ビクタ・ミラー ) ・Neal Koblitz (ニール・コブリッツ) |
・処理負荷が掛かる | ・桁数が大きい合成数の素因数分解問題が困難であることを安全性の根拠 ・暗号とデジタル署名を実現できる方式 | ・楕円曲線を利用した暗号方式の総称 |
共通鍵暗号方式・公開鍵暗号方式の比較
共通鍵暗号方式・公開鍵暗号方式それぞれの方式を
- 暗号化アルゴリズム
- 使用する暗号鍵
- データ処理時間
- 鍵の授受
の観点から比較してみます。
共通鍵暗号方式 | 公開鍵暗号方式 | |
---|---|---|
暗号化アルゴリズム | ・RC4 ・DES ・AES | ・DH ・RSA ・ECC |
使用する暗号鍵 | 共通鍵 | ・公開鍵 ・秘密鍵 |
データ処理時間 | 速い | 遅い |
鍵の授受 | 第三者に傍受されずに共通鍵を安全に交換する必要あり = 鍵配送問題 | 公開鍵を一般に公開しても問題なし |
以上が、
- 共通鍵暗号方式
- 公開鍵暗号方式
- 共通鍵暗号方式・公開鍵暗号方式の比較
についての解説になります。
コメント
[…] (Yone’s Archive 共通鍵暗号方式と公開鍵暗号方式の仕組みと特徴[図解] 2020…) […]