WEBVTT 00:00:04.947 --> 00:00:08.157 強力な暗号は、指紋を隠します。 00:00:08.957 --> 00:00:10.840 指紋が薄い暗号を作成するには 00:00:10.840 --> 00:00:14.274 この文字の出現頻度の分布を平坦化することです。 00:00:17.597 --> 00:00:18.935 15 世紀半ばでは、 00:00:18.935 --> 00:00:21.266 polyalphabetic 暗号が 00:00:21.266 --> 00:00:23.357 これを達成するに開発されました。 00:00:23.357 --> 00:00:28.167 アリスとボブが共有秘密シフト単語を持っているとします。 00:00:28.167 --> 00:00:30.766 まず、アリスは、アルファベットの文字の位置により 00:00:30.766 --> 00:00:33.223 単語を番号に変換します。 00:00:33.223 --> 00:00:37.830 次に、この番号順がメッセージに沿って繰り返されます。 00:00:39.476 --> 00:00:41.981 それによって、メッセージの各文字が、 00:00:41.981 --> 00:00:44.160 この単語の番号順によるとずらされます。 00:00:45.129 --> 00:00:48.809 単一の数ではなく複数の数を用い 00:00:48.809 --> 00:00:53.637 シーザー暗号のようにずらされます。 00:00:53.637 --> 00:00:56.626 暗号化されたメッセージは、公然とボブに送信されます。 00:00:58.488 --> 00:01:01.626 ボブの各文字にずれの数を、秘密の単語に基づいて 00:01:01.626 --> 00:01:04.859 定め、元のメッセージを解読します。 00:01:06.121 --> 00:01:08.042 暗号を盗もうとするイブが 00:01:08.042 --> 00:01:10.173 一連のメッセージを傍受します。 00:01:10.173 --> 00:01:12.642 そして、文字の出現頻度を計算します。 00:01:13.673 --> 00:01:18.043 この場合、軽く指紋を見つけることができます。 00:01:18.043 --> 00:01:20.592 これを、どのように破れるでしょう? 00:01:22.546 --> 00:01:26.169 暗号を解くには、情報漏れを利用します。 00:01:26.169 --> 00:01:29.382 部分的な指紋を見つけることと同じです。 00:01:29.382 --> 00:01:32.411 文字の出現頻度の差分が存在する限り 00:01:32.411 --> 00:01:34.929 情報漏れが発生します。 00:01:36.129 --> 00:01:39.826 暗号化されたメッセージ内の繰り返しによって この差が発生します。 00:01:41.703 --> 00:01:45.911 この場合は、アリスの暗号に繰り返された単語が含まれています。 00:01:47.219 --> 00:01:51.096 暗号を解読するには、イブは最初を 00:01:51.096 --> 00:01:55.567 秘密の単語そのものではなく、その長さを 見つけます。 00:01:55.567 --> 00:01:56.922 これには、異なる間隔で繰り返し 00:01:56.922 --> 00:02:00.487 頻度分布をチェックします。 00:02:00.487 --> 00:02:04.430 各 5 番目の文字の頻度分布のチェックすると 00:02:04.430 --> 00:02:07.648 指紋は自体を明らかになります。 00:02:07.648 --> 00:02:10.144 これにより、5つのシーザー暗号を解いていることが 00:02:10.144 --> 00:02:12.821 分かります。 00:02:12.821 --> 00:02:14.726 それぞれは、以前に説明したように 00:02:14.726 --> 00:02:17.136 簡単な作業です。 00:02:17.136 --> 00:02:19.740 暗号の強度は、使用された秘密の単語の長さを 00:02:19.740 --> 00:02:22.909 見つけるに要する時間に依存します。 00:02:22.909 --> 00:02:26.909 長い秘密単語ほど、強い暗号になります。