2021年09月10日

●「ディフィー=ヘルマン鍵共有とは」(第5570号)

 「電子署名」の話に入る前に、「パスワード」を特定の人に伝
える方法について考えてみることにします。AがBに対して、重
要なメッセージの入ったファイルをメールに添付し、パスワード
がないと開けないようにしておきます。
 問題は、パスワードをどのようにしてBに伝えるかです。電話
で伝える方法はありますが、盗聴されるリスクがあります。どう
すればよいかです。この難問を解くアイデアが1976年に示さ
れています。「ディフィー=ヘルマン鍵共有」(DH法)といい
ます。少しややこしいですが、内容はきわめてシンプルです。少
しの間、お付き合いください。
 AとBが共通のパスワードを決めることにします。3つの段階
があります。
─────────────────────────────
◎第1段階
 Nとnという2つの整数を決める。これを電話かメールでAと
Bが共有する。
◎第2段階
 A、B各自が、秘密の数である「a」を決め、次の計算をして
答え「b」を求める。「nをa乗し、Nで割り、余りを求める」
◎第3段階
 各自が、相手の答えである「b」と、自分の秘密の数「a」を
使って「bをa乗し、Nで割り、余りを求める」と、結果は両方
とも同じ数になる。
             ──野口悠紀雄著/ダイヤモンド社
     『仮想通貨革命/ビットコインは始まりに過ぎない』
─────────────────────────────
 実際の数値で検証することにします。第1段階において、Aと
Bが共有する2つの数であるNとnという整数をそれぞれ、N=
11、n=5とします。
 第2段階において、Aは秘密の数「a」を「3」と決めて、計
算「nをa乗し、Nで割り、余りを求める」を実施します。5を
3乗し、11で割ると、余りは「4」になります。この数をBに
伝えます。
 Bも同じ計算をします。Bは秘密の数「a」を「6」と決めて
計算をします。5を6乗し、11で割ると、余りは「5」になる
ので、この数をAに伝えます。
 第3段階において、AはBから伝えられた5を3乗し、11で
割った余りを求めると、余りは「4」になります。
 一方、BはAから伝えられた4を6乗し、11で割ります。余
りは「4」でAの答えと一致します。したがって「4」をパスワ
ードにすればよいのです。
 この場合、A、Bが共有しているNとn、相手の答えであるb
が他人に知られたとしても、A、Bの秘密の数である「a」が知
られない限り、この方法は安全です。なぜ、安全であるかという
と、たとえば「5をa乗し、11で割った余りが4になる」のは
誰でもできる簡単な計算ですが、その逆の計算は大変であるから
です。すなわち、「5をa乗し、11で割った余りは4になるが
それでは、aはいくらか」の答えを得るアルゴリズムは発見され
ていないからです。
 なお、ここでは計算を簡単にするため、パスワードを1桁にし
ていますが、当然ですが、パスワードを1桁にすることはあり得
ず、複数桁にする必要があります。
 もし1桁であれば、「a」について数字を次々と当てはめてい
くと、たちまち「a=3」になったところで、11で割った余り
は4になるので、「a」が3であることはわかってしまいます。
こういうパスワード解読法を「総当たり攻撃」といいます。
 この「ディフィー=ヘルマン鍵共有」(DH法)に刺激を受け
て、MITの3人のエンジニアが「公開鍵暗号」と呼ばれる暗号
方式を開発しています。暗号名は、彼ら3人の頭文字をとって、
「RSA暗号」と呼んでいます。
─────────────────────────────
       R:   ロナルド・リベスト
       S:   アディア・シャミア
       A:レオナルド・エーデルマン
─────────────────────────────
 「RSA暗号」の基本的な発想は、「公開鍵」とそれに対応す
る「秘密鍵」という2つの鍵を作り、公開鍵は公開するが、秘密
鍵は、まさにその名の通り、自分だけで秘匿します。公開鍵から
秘密鍵を計算するアルゴリズムはないという前提に立ちます。大
まかなイメージは次の通りです。
─────────────────────────────
    @Aが秘密鍵から公開鍵を作成し、Bに渡す
    ABはその公開鍵を使って通信内容を暗号化
    B公開鍵で暗号化された文書をAが受領する
    CAは秘密鍵により文書を復号し内容を確認
─────────────────────────────
 野口悠紀雄名誉教授は「RSA暗号は革命的である」として、
次のように述べています。
─────────────────────────────
 「誰に知られても構わない公開鍵を用いて暗号化する」という
のは、まったく直観に反する。公開鍵暗号は、暗号技術上の革命
的な発明だ。現在では、インターネットの通信に広く用いられて
いる。RSA暗号がなかったとすれば、Eコマースが現在のよう
に広く行なわれることはなかったろう。
 なお、RSA暗号の計算量は膨大なので、文書など長いメッセ
ージを暗号化するには適当でない。パスワードのような短いデー
タを共有化するために用いられることが多い。
       ──野口悠紀雄著/ダイヤモンド社の前掲書より
─────────────────────────────
             ──[デジタル社会論V/024]

≪画像および関連情報≫
 ●公開鍵と秘密鍵
  ───────────────────────────
   公開鍵とそれに関連した秘密鍵は、数値的に互いに関連し
  ています。ですから、鍵値の一方を使用して暗号化されたデ
  ータは、他方の鍵値を使用してのみ、復号することができま
  す。ネットワーク・プロトコルでは、以下の方法でこの点を
  利用しています。
   一方の側から他方の側へ送信する際に、データは、送信側
  が受信側の公開鍵を知っているなら安全に送信することがで
  きます。送信側は、公開鍵でデータを暗号化してから送信し
  ます。受信側は、それを受信したなら、秘密鍵で復号するこ
  とによりデータを元の状態に戻します。意図された受信側は
  秘密鍵を所有している相手だけなので、意図された受信側の
  みがデータを元の状態に戻すことができます。
   一方の側は、独自の秘密鍵を使用してデータのコピーを暗
  号化することにより、デジタル署名を行うことができます。
  署名者の公開鍵を知っているなら、署名者の公開鍵を使用し
  て署名済みデータを復号することにより、その署名を検査す
  ることができます。元の状態に戻されたデータが予想通りの
  値(オリジナル・データ)であれば、それは元の側が署名し
  たデータであり、他者によって偽造されたものではありませ
  ん。対応する秘密鍵を持っているのは、元の側だけだからで
  す。              https://ibm.co/38NpPNK
  ───────────────────────────
ディフィー氏とヘルマン氏.jpg
ディフィー氏とヘルマン氏
posted by 平野 浩 at 00:00| Comment(1) | デジタル社会論V | このブログの読者になる | 更新情報をチェックする