web-dev-qa-db-ja.com

小さな鍵で動作する公開暗号システムが必要です

署名と署名検証をサポートするために必要です。 eachに16バイトで収まる公開鍵と秘密鍵が必要です。署名自体は16バイトに収まる必要があります。

これは何か大きなものの一部であるため、暗号の強度についてはあまり気にしません。

そんなことはありますか?

1
badp

あなたは楕円暗号化システムをやりたいと思っています、それはあなたにあなたの強打を最も保護するでしょう。これを参照してください ウィキペディアの記事 。ニーズに合うと思われる特定のアルゴリズムは 楕円曲線DSA

上記の記事からいくつかのジューシーなスポットを引用するだけです:

これまでに(公に)破られた最も難しいECCスキームには、プライムフィールドの場合は112ビットのキーがあり、バイナリフィールドの場合は109ビットのキーがありました。

16バイト= 128ビットなので、問題ないはずです。

4
PearsonArtPhoto

暗号強度が必要ないのに、なぜデジタル署名がまったく必要なのですか?誰でもあなたの署名を壊したり偽造したりしても大丈夫ですよね?弱いまたは誤って実装された暗号化は、誤った安心感を与えるため、何もないよりも悪いです。

ECCの場合は+1ですが、乱数の要件など、実装の詳細に注意してください。

3

公開鍵、秘密鍵の場合は128ビット以下および署名:これは難しい要件です。署名のサイズが難しくなります。

[〜#〜] ecdsa [〜#〜] を使用する場合、could 128ビット曲線で作業します。公開鍵は約129ビットに収まります。 1ビットを省略できます(これは、署名を検証する人が欠落しているビットを「推測」する必要があることを意味します。つまり、2つの可能な公開鍵を試してください。1つが署名と一致する場合は問題ありません)。秘密鍵は128ビットを使用しますが、それでも要件と同等です。セキュリティは最大2になります64 曲線操作は、技術的には実現可能ですが簡単ではありません(128ビット曲線を破るための分散計算が開始されました。かなり多くの大学が関与し、約10年かかると予想されます。これは私が「簡単」)。 しかし署名サイズは256ビット(two 128ビット整数)で、要件の2倍になります。したがって、ECDSAは機能しません。

研究論文を見ると、 BLSスキーム が見つかるかもしれません。要件に一致させるには、超特異曲線を持つ128ビット曲線を使用する必要があります(数学的には、公開鍵と署名の両方が、体の拡大ではなく、ベースフィールドの曲線に含まれている必要があるため、これは、歪みマップの)。少なくともある程度のセキュリティ(ほとんどクラックできないもの)を得るには、埋め込み度を少なくとも6にする必要があり、特性2のフィールドを避けたいので、特性3のフィールドで計算を実装する必要があります。は公開された標準ではなく、比較的読みやすい数十の記事に散在する高度な数学的知識の断片のみです。あなたがその段落のいずれかを理解したなら、あなたはすでにあなたの正気を失っています、おそらく私が私のものを置き忘れたところです。

要約:要件に適合する既知のデジタル署名アルゴリズムはありませんおよび使用するのが合理的です。 mayペアリングに関する現在の研究が安定する将来、1つになる可能性があります。しかし、実装は簡単ではありません。

2
Tom Leek

短期間の鍵と検証と署名のみが必要な場合は、 Diffie Hellman 鍵交換を調べて、これを行い、小さな素数を使用することをお勧めします。それは安全ではないでしょう、しかしあなたはこれをすでに知っています。

0
Thomas James