• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:楕円曲線暗号のパラメータ)

楕円曲線暗号のパラメータについての質問

このQ&Aのポイント
  • 楕円曲線暗号のパラメータについて質問です。
  • お勧めパラメーターとしてのT=(p, a, b, G, n, h)について解説します。
  • お勧めパラメーターの安全性について疑問があります。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

No.1です。 お礼欄にあった記載について、補足いたします。 確かに事前に計算した結果をソートしてデータベース化してあるものが存在するなら、おっしゃるとおりです。 ただし、そのデータベースが未だにできあがっていない(私が#付きでコメントした部分)というのが実情です。なぜなら、攻撃用のデータベースを作成することは、ブルートフォース攻撃と同義だからです。 楕円曲線暗号の場合、例えば現行RSAで必要とされる鍵長(2048ビット)と同程度の安全性を確保するのに224ビットの鍵長が必要と一般的に言われています。これは確かにRSAよりは小さいサイズですが、それでも単純に言って鍵の候補が2^224個あるということです。 公開鍵暗号と共通鍵暗号でちょっと違いますが、例えば現在使われているAESで現行で安全性を確保するのに必要とされる鍵長は128ビットで、すなわち鍵の候補が2^128個となります。もし上記にあるようなデータベースが容易に作れるなら、同じ理屈でブルートフォース的に闇雲に鍵を作ってAESが解けることにもなります(鍵長が短い分、AESの方が早く解けるでしょう)。 この辺のことはさらに「計算量的安全性」を調べてみると分かると思います。

uyama33
質問者

お礼

ありがとうございます。 お勧めパラメータを使って、 自分で、kG を計算してみたら、 とても時間がかかったので、 kの値は小さなものに限られると考えてしまいました。 kが大きくても kG をすばやく計算できるように プログラムを改良します。 また、ご指導ください。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

ご質問の中にある 「公開鍵 Q=kG で、公開鍵がGを何倍したものかがすぐわかるとおもうのです。秘密鍵kが分かってしまう。」 については『楕円曲線 離散対数問題』で調べてみて下さい。 #辞書式にソートするには、その値の対応リストを作らなければなりませんが、それ自体が大変な時間がかかります。

uyama33
質問者

お礼

ありがとうございます。 盗聴するためのデータを大量に確保できる立場の人なら お勧めパラメータが10種類程度しかなかったので、 事前に計算してソートしたデータを用意するだろうと思ったのです。 これなら、離散対数問題を解かなくてもよい。大きなデータベースを作るだけです。 たとえば、犯罪捜査のために事前に辞書式にならべたデータを大型コンピュータで作っておく と効率がよい。 また、パソコンで計算するkの値はそんなに大きくは無いのだろうから、 パソコンで数時間で計算できるようなkの値については 前もって計算しておけばよい。 と思いました。 また、調べてみます。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • 公開鍵暗号 RSAについて

    こんにちは、 RSAの説明には、 公開鍵(a,N) 秘密鍵(b,N) N=素数c×素数d を用意した場合、a,c,dを決定できれば、bを導いて秘密鍵を導くことができます。 とあります。N、c、dの関係はわかりますが、a,bは何でしょうか?

  • 楕円のプログラム(一般→標準形)について

    こんばんわ、質問させて頂きます。 この掲示板の「楕円のプログラム」を参照して楕円のプログラムを組みました。(EXCELを用いて近いうちにCで組む予定です。) ある計測点12点より 楕円の一般方程式に当てはめ、 Ax^2+By^2+Cx+Dy+E=1 として各値A,B,C,D,Eを転置、逆行列、積を用いて解きました。 そして、この値は A=1/a^2=-3.16665e-7 B=1/b^2=1.4901e-8 C=-2c/a^2=0 D=-2d/b^2=-2.32831e-10 E=c^2/a^2+d^2/b^2=1 となりました。ここで、小文字a,b,c,d,eは楕円の方程式の標準形 (x-c)^2/a^2+(y-d)^2/b^2=1 となりますが、 Aの値は負となります。つまりa^2は虚数解を持ちます。 これはどういう意味を持っているのでしょうか? ご教授よろしくお願いします。 用いた計測座標(x,y) 0.004343      0.013968823 0.00314534 0.01454172 0.005537      0.016603472 0.00640595 0.019503824 0.00554108 0.022148798 0.00296192 0.024042826 0.000376075 0.024724047 -0.002755  0.024067637 -0.0051356 0.022425276 -0.0061896 0.019473675 -0.0051498 0.016384854 -0.0028986 0.014560819

  • 楕円の正規化条件

    今、楕円の最小二乗法のプログラムを書いているのですが、正規化条件の扱いがよくわかりません。 単純に u = (A B C D E F)         (1) ξ = (x^ 2 2xy y^2 2x 2y 1)    (2) で、 行列 M = (1 / N ) Σ ξ・ξt    (3)  ξt:ξの転値    N:Σの数 の最小固有値に対する固有ベクトルをuとして採用するという計算をしているのですが、放物線になってしまいました。 標準的には A^2 + B^2 + C^2 + D^2 + E^2 + F^2 = 1  (4) が正規化条件として使われる、とあるのですが、これをどう扱っていいかわからないのです。 この論文を参考にしています http://www.iim.cs.tut.ac.jp/~kanatani/papers/newlsellipse.pdf

  • RSAによる暗号化について

    よくRSAでの暗号化で鍵の長さが512ビットや1024ビットなどのものがありますが、これは公開鍵eと秘密鍵dと共通鍵nのどの鍵が512ビットなのでしょうか?自分の中では512ビットの鍵であれば全て(e,d,n)は512であると思っているのですが、dを計算する時(ユークリッド互除法を用いる)、どうしてもdはeやnの鍵の長さの2倍のビット長が必要な気がします。どうしてもわかりません。鍵のビット長について教えてください。お願いします。

  • RSA暗号の解き方

    素数 P=5 Q=11 であり、N=55となります。公開鍵e=3と定義します。一般解d=27となります。 さらに、自然数m=20となります。 (1)自然数mを公開鍵(e,N)を使って暗号Yを求めてください。 (2)さらに、秘密鍵(d,N)を使って暗号Yを復号化し、mと一致することを確認してください。

  • 至急!暗号の問題です。

    至急!暗号の問題です。 A0E0D0E4E0G0A3J4F1I0B5E0D8B0B1E0C0A1 これは日本語で作成されたものを暗号化したものです。 これを日本語に直してください。 よろしくおねがいします。

  • 楕円積分

    次の式を楕円積分として表せという問題なのですがさっぱりわかりません。第一種完全楕円積分、第二種完全楕円積分などを使って表現したいので、s=t^2やsecθなどで置き換えて計算してみたのですが出来ませんでした。似たような例題は何とかできたのですが、、、 よろしくお願いします。 1) ∫[0,∞]f(x)dx、f(x)=1/{s*(s*(a^2+s)(b^2+s))^(1/2)} 2) ∫[0,∞]f(x)dx、f(x)=1/{s*(a^2+s)*(s*(a^2+s)(b^2+s))^(1/2)} 3) ∫[0,∞]f(x)dx、f(x)=1/{s^2*(a^2+s)*(s*(a^2+s)(b^2+s))^(1/2)} (a,bはともに定数) 回答は 1)の答えは-2E/(a*b^2) Eは第二種完全楕円積分 になるようです。

  • RSA暗号についての素朴な疑問

    RSA暗号について勉強中のものですが、これまでのところ (1)送信側はは公開鍵(e,n)で平文aを b = a^e mod n で暗号文bを作成する。 (2)受信側は秘密鍵dを知っており、上記暗号文bからb^d mod n で元の平文aが求まる。 (3)暗号としてのキモは、(e,n)からでは復号できない。dを求めることも困難(nの素因数分解が困難) というのが私の理解したところです。数式等もある程度理解しました。 ただ、ここで素朴な疑問があります。dをしらなくてもbのべき乗を繰り返していけば復号できるのでは?ということです。自分が送信側で平文aを暗号化してbを作る。bから bxb→b' b'xb→b'' b''xb→b'''  と計算していけば平文aにたどり着くのでは? (その結果dもわかったことになる) 平文が現れたかのチェック時間は余分にかかると思いますが、dを知っていてbのd乗を計算するのと上記のように2乗、3乗...と繰り返すのと大きな違いがあるのでしょうか? 長文ですいません。

  • 暗号について

    RSA公開暗号方式で公開鍵(n、e)、暗号文(C)が以下の10進数の場合、あんごうを解読し、元の平文(M)を10進数で答えよ。 Bit    n     e     C 10  491123    827     7927 30  702234621814838633  947076967 67711417113875674 40  115436176957652954691681 852048451511 25449315315010354481071 なんですが・・・ 時間に余裕のある方、ぜひ教えてください。 よろしくお願いします。

  • RSA(公開鍵)

    a=2, b=3として以下の方法(RSA)で公開鍵、秘密鍵を作成し、平文4を暗号化したいのですが、暗号化しても4のままになってしまいます。これって暗号化されているのでしょうか?どなたかわかる方がいましたらよろしくお願いします。 1-二つの素数を決める。これをa,bとする。 2-a*b=c (cを合成数) 3-d=(a-1)(b-1)という自然数dを求める 4-f*e/dで余りが1となるようなfを求める。(秘密鍵) 暗号文 =M(平文)^e / c の余り。