コンテンツにスキップ

利用者:Roget/HIME(R)

HIME(R)とは、大きな数の素因数分解問題が困難であることを安全性の根拠とした公開鍵暗号の一つである。日立製作所が提案した。

概要[編集]

特殊な法を利用したRabin暗号方式の一種である。パディングにはOAEPを用いている。

Rabin暗号では法としてを利用していたが、HIME(R)では法としてを利用する。 また、復号化の際に中国式剰余定理を用いない点も特徴である。

用語については、暗号の用語暗号理論の用語を参照のこと。

暗号方式[編集]

をセキュリティ・パラメータとする。

鍵生成[編集]

  • 法を4の下で3と等しいビットの素数を選ぶ。
  • となる整数を選ぶ。
  • を計算する。

また、パディング用に以下のパラメータ生成を行う。

  • とする。
  • , となる正整数を選ぶ。
  • ハッシュ関数を選ぶ。

秘密鍵を素因数とし、公開鍵をとする。

暗号化[編集]

  • の元を平文とする。
  • 乱数からランダムに選ぶ。
  • パディング: OAEPを用いる。
    • を計算する。
    • を計算する。
    • とする。
  • を暗号文とする。

復号[編集]

受け取った暗号文をとする。

  • 暗号文上で平方剰余かどうか確かめる。そうでなければ拒否。
    • 具体的にはを確かめる。
  • の計算。
    • , ,
    • , を計算し,
    • について, , を計算する.
  • を計算する。
    • 注: がそれぞれ2通りの値を取るので, 4つのMがありうる。
  • についてOAEPの逆パディングを適用し, 正しくを復元できたものを平文とする。

実装上の注意[編集]

  • 仕様ではハッシュ関数GおよびHの実装例が記されている。
  • 復号精度の向上のためにの符号とヤコビ記号を送っても良い。この場合でも安全性証明に影響は無い。

安全性[編集]

参考文献[編集]

関連項目[編集]