(Translated by https://www.hiragana.jp/)
エドワーズ曲線デジタル署名アルゴリズム - Wikipedia コンテンツにスキップ

エドワーズ曲線きょくせんデジタル署名しょめいアルゴリズム

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』
EdDSAから転送てんそう
EdDSA
一般いっぱん
設計せっけいしゃ ダニエル・バーンスタイン、Niels Duif、Tanja Lange、Peter Schwabe、Bo-Yin Yang、et. al.
初版しょはん発行はっこう 2011-09-26
詳細しょうさい
構造こうぞう 楕円だえん曲線きょくせん暗号あんごう

エドワーズ曲線きょくせんデジタル署名しょめいアルゴリズム(エドワーズきょくせんデジタルしょめいあるごりずむ、英語えいご: Edwards-curve Digital Signature Algorithm略称りゃくしょうEdDSA)は、公開こうかいかぎ暗号あんごうにおいて、ツイステッドエドワーズ曲線きょくせん英語えいごばんもとづくシュノア署名しょめい英語えいごばん一種いっしゅもちいたデジタル署名しょめいひとつである[1]のデジタル署名しょめいにおいてつかっている安全あんぜんせいかんする問題もんだい回避かいひしたうえで、こう効率こうりつ暗号あんごう処理しょりおこなわれるように設計せっけいされている。エドワーズ曲線きょくせん電子でんし署名しょめいアルゴリズムは、ダニエル・バーンスタインひきいるチームによって開発かいはつされた [2]

概要がいよう

[編集へんしゅう]

EdDSAのアルゴリズムは以下いかのようにあらわすことができる。簡単かんたんのため、整数せいすう曲線きょくせんじょうてんをどのようにビット列びっとれつ符号ふごうするかといった詳細しょうさい省略しょうりゃくしている。詳細しょうさいについては、引用いんよう文献ぶんけんやRFCを参照さんしょうのこと[3][2][1]

EdDSA方式ほうしきは、つぎのパラメータをもちいる。

  • 素数そすうのべきである すうとして有限ゆうげんたい
  • うえ楕円だえん曲線きょくせん. ただし、すうおおきな素数そすう 適当てきとう自然しぜんすう によって あらわせる必要ひつようがある。 は cofactor とばれる。
  • :ベースポイント。すう である楕円だえん曲線きょくせんじょうてん
  • 出力しゅつりょく ビットであるハッシュ関数かんすう。ただし、たす整数せいすう。したがって、楕円だえん曲線きょくせん うえてんは、 ビットであらわすことができる。

これらのパラメータは、EdDSA署名しょめい方式ほうしきすべてのユーザが共通きょうつう使つかうことができる。ベースポイントの選択せんたく任意にんいだが、そののパラメータの選択せんたくはEdDSA署名しょめい方式ほうしき安全あんぜんせいおおきく影響えいきょうあたえる。たとえば、ポラード・ロー離散りさん対数たいすうアルゴリズムもちいて離散りさん対数たいすう計算けいさんするのに必要ひつよう楕円だえん加算かさん回数かいすうはおよそ かいである[4]。したがって、このアルゴリズムで離散りさん対数たいすうくことが事実じじつじょうできないように 十分じゅうぶんおおきくなければならない。典型てんけいてきには、 よりおおきいもちいる[5]選択せんたく選択せんたくによって制限せいげんける。Hasseの定理ていりにより、すう は、 から 以上いじょうはなれることができないためである。ハッシュ関数かんすう は、EdDSAの安全あんぜんせい解析かいせきにおいては通常つうじょうランダムオラクル想定そうていされる。HashEdDSAという変種へんしゅ(variant)においては、くわえ、衝突しょうとつたいせい英語えいごばんつハッシュ関数かんすう必要ひつようである。

かぎ生成せいせい署名しょめい生成せいせい署名しょめい検証けんしょう方法ほうほう以下いかとおりである。ビット列びっとれつ連結れんけつあらわす。

署名しょめいかぎ
一様いちようランダムにえらんだ ビット列びっとれつ
公開こうかいかぎ
署名しょめいかぎ から (ハッシュ下位かい ビット)を計算けいさんし、楕円だえん曲線きょくせんじょうてん 公開こうかいかぎとする。 ビット列びっとれつあらわされる。
署名しょめい
メッセージ たいする署名しょめいは、楕円だえん曲線きょくせんじょうてん まんせい整数せいすう のペア あらわされる。(とも ビットであらわせるため、署名しょめいちょう ビット。)これをるためには、まず署名しょめいかぎ から (ハッシュ上位じょうい ビット)を計算けいさんし、計算けいさんする。これをもちいて以下いか計算けいさんする。

署名しょめい検証けんしょう
つぎしきつことを確認かくにんする。

署名しょめい生成せいせい方法ほうほうと、すう であることから、まさしくつくられた署名しょめいかなら検証けんしょうとおる。すなわち:

Ed25519は、エドワーズ曲線きょくせんデジタル署名しょめい実装じっそうひとつであり、ハッシュ関数かんすうとしてSHA-512(SHA-2)使つかい、曲線きょくせんとしてCurve25519もちいている。かくパラメータは以下いかとおり。

  • および
  • うえてんのうち、 座標ざひょう であり 座標ざひょうせいであるてん
    ただし、"せい"とは、てん符号ふごうしたビット列びっとれつについてつぎのように定義ていぎされる:
    • "せい":座標ざひょう偶数ぐうすう最下位さいかいビットが0)
    • "":座標ざひょう奇数きすう最下位さいかいビットが1)
  • SHA-512。したがって である。

曲線きょくせん は、Curve25519としてられているモンゴメリがた楕円だえん曲線きょくせん英語えいごばんそう有理ゆうり同値どうちである。具体ぐたいてき同値どうちあたえられる [2][6]

性能せいのう

[編集へんしゅう]

Ed25519は、x86-64 Nehalem/Westmere英語えいごばんプロセッサファミリーけに最適さいてきされている。検証けんしょうは、64署名しょめい一括いっかつ処理しょりすることでよりスループットを向上こうじょうさせることができる。Ed25519 は、128ビット安全あんぜんせい共通きょうつうかぎ暗号あんごうけい同等どうとう攻撃こうげきたいせい提供ていきょうすることを目的もくてきとしている。公開こうかいかぎは256ビット、署名しょめいは512ビットである[7]

コーディングの安全あんぜんせい

[編集へんしゅう]

安全あんぜんせいかんしては、Ed25519では、秘密ひみつのデータに依存いぞんした分岐ぶんき命令めいれい配列はいれつ参照さんしょうもちいられておらず、おおくのサイドチャネル攻撃こうげきたいせいがある。

離散りさん対数たいすう問題もんだいベースの署名しょめい方式ほうしき同様どうように、EdDSAは署名しょめいごとことなるnonceばれる秘密ひみつ情報じょうほうもちいられる。DSAECDSAにおいては、このnonceは署名しょめい生成せいせいごとにランダムに生成せいせいされるのが一般いっぱんてきである。しかし、もし脆弱ぜいじゃく乱数らんすう生成せいせい方法ほうほうもちいられてnonceを推測すいそく可能かのうであるときには、署名しょめい秘密ひみつかぎ情報じょうほうらしてしまう。たとえば、ソニーのPlayStation 3署名しょめいかぎ漏洩ろうえいした事例じれいがある[8][9][10]

これにたいし、EdDSAでは秘密ひみつかぎとメッセージのハッシュからnonceを確定かくていてきめるという方法ほうほうっている。これにより、秘密ひみつかぎをランダムに作成さくせいすれば、その署名しょめい生成せいせいには乱数らんすう使つか必要ひつようがなく、脆弱ぜいじゃく乱数らんすう生成せいせい方法ほうほうもちいることによる秘密ひみつかぎ漏洩ろうえいのリスクが存在そんざいしない。

標準ひょうじゅん実装じっそう矛盾むじゅん

[編集へんしゅう]

EdDSAには2つの標準ひょうじゅん存在そんざいする。1つはIETFによる RFC 8032 であり、もう1つはNISTによるFIPS 186-5 (2019).[11]である。これらの標準ひょうじゅんあいだちがいについての解析かいせきすで報告ほうこくされており[12][13]、テストベクタも利用りよう可能かのうである[14]

ソフトウェア

[編集へんしゅう]

Ed25519の主要しゅよう使用しようれいには、OpenSSH, GnuPGとさまざまな代替だいたいソフトウェア [15]、そして、OpenBSD提供ていきょうされているデジタル署名しょめい署名しょめい検証けんしょうツールsignifyがある [16]

Ed448は、エドワーズ曲線きょくせんデジタル署名しょめい実装じっそうひとつであり、ハッシュ関数かんすうとしてSHAKE256使つかい、曲線きょくせんとしてCurve448もちいている。Ed25519と同様どうように、RFC 8032定義ていぎされ、FIPS 186-5の草稿そうこうにおいて推奨すいしょうされている[11]

脚注きゃくちゅう

[編集へんしゅう]
  1. ^ a b Josefsson, S.; Liusvaara, I. (January 2017). Edwards-Curve Digital Signature Algorithm (EdDSA) (英語えいご). Internet Engineering Task Force. doi:10.17487/RFC8032. ISSN 2070-1721. RFC 8032. 2017ねん7がつ31にち閲覧えつらん
  2. ^ a b c Bernstein, Daniel J.; Duif, Niels; Lange, Tanja; Schwabe, Peter; Bo-Yin Yang (2011-09-26) (PDF). High-speed high-security signatures. http://ed25519.cr.yp.to/ed25519-20110926.pdf. 
  3. ^ Daniel J. Bernstein; Simon Josefsson; Tanja Lange; Peter Schwabe; Bo-Yin Yang (4 July 2015). EdDSA for more curves (PDF) (Technical report). 2016ねん11月14にち閲覧えつらん
  4. ^ Daniel J. Bernstein; Tanja Lange; Peter Schwabe (1 January 2011). On the correct use of the negation map in the Pollard rho method (Technical report). IACR Cryptology ePrint Archive. 2011/003. 2016ねん11月14にち閲覧えつらん
  5. ^ Daniel J. Bernstein. “ECDLP Security: Rho”. 2016ねん11月16にち閲覧えつらん
  6. ^ Bernstein, Daniel J.; Lange, Tanja (2007). Faster addition and doubling on elliptic curves. pp. 29–50. http://eprint.iacr.org/2007/286. 
  7. ^ Daniel J. Bernstein (2017ねん1がつ22にち). “Ed25519: high-speed high-security signatures”. 2019ねん9がつ27にち閲覧えつらん。 “This system has a 2^128 security target; breaking it has similar difficulty to breaking NIST P-256, RSA with ~3000-bit keys, strong 128-bit block ciphers, etc.”
  8. ^ Johnston, Casey (2010ねん12月30にち). “PS3 hacked through poor cryptography implementation”. Ars Technica. https://arstechnica.com/gaming/2010/12/ps3-hacked-through-poor-implementation-of-cryptography/ 2016ねん11月15にち閲覧えつらん 
  9. ^ fail0verflow (29 December 2010). Console Hacking 2010: PS3 Epic Fail (PDF). Chaos Communication Congress. 2018ねん10がつ26にち時点じてんオリジナル (PDF)よりアーカイブ。2016ねん11月15にち閲覧えつらん
  10. ^ 27th Chaos Communication Congress: Console Hacking 2010: PS3 Epic Fail”. 2019ねん8がつ4にち閲覧えつらん
  11. ^ a b FIPS 186-5 (Draft): Digital Signature Standard (DSS)”. NIST (October 2019). doi:10.6028/NIST.FIPS.186-5-draft. 2022ねん8がつ3にち閲覧えつらん
  12. ^ Konstantinos Chalkias, Francois Garillot and Valeria Nikolaenko (1 October 2020). Taming the many EdDSAs. Security Standardisation Research Conference (SSR 2020). 2022ねん8がつ3にち閲覧えつらん
  13. ^ Jacqueline Brendel, Cas Cremers, Dennis Jackson, and Mang Zhao (3 July 2020). The provable security of ed25519: Theory and practice. IEEE Symposium on Security and Privacy (S&P 2021). 2022ねん8がつ3にち閲覧えつらん
  14. ^ ed25519-speccheck”. 2022ねん8がつ3にち閲覧えつらん
  15. ^ Things that use Ed25519”. 6 January 2015閲覧えつらん
  16. ^ マイナビニュース:OpenBSD、デジタル署名しょめいきパッケージシステムに”. 2 February 2015閲覧えつらん
  17. ^ Alternate implementations”. 17 November 2014閲覧えつらん
  18. ^ “wolfSSL Embedded SSL/TLS Library | wolfSSL Products” (日本語にほんご). wolfSSL. https://www.wolfssl.jp/products/wolfssl/ 2018ねん11月12にち閲覧えつらん 
  19. ^ https://www.openssl.org/news/cl111.txt

関連かんれん項目こうもく

[編集へんしゅう]

外部がいぶリンク

[編集へんしゅう]