web-dev-qa-db-ja.com

安全でありながら、最短の署名を提供する非対称スキームは何ですか?

私はいくつかの署名スキーム(最も一般的なものについてはDSA、ECDSA)を見てきましたが、次のプロパティを持つスキームが存在するかどうか疑問に思っています:

  • 非対称である(署名には秘密鍵が必要です。公開鍵で確認できます)
  • 非常に短い署名サイズ(50ビット未満)
  • 今日の基準で安全であること(署名と署名されたテキストを知っている秘密鍵を見つけるのは難しい)

公開鍵で検証可能である限り、1つのテキストに対して複数の署名が有効であるかどうかさえ気にしません。

私の直感は、安全であることは本質的に暗号化キーのサイズにリンクしており、それ自体が署名のサイズに影響を与えるということです。私の知る限りでは、ECDSAは同じレベルのセキュリティでDSAよりも短い署名を提供しますが、署名はまだ大きすぎて使用できません...

どんな考え/署名スキームへのリンクも歓迎します。

編集:私もある時点でBLSについて読みましたが、50ビット未満の署名で十分に安全なスキームを取得することができるかどうかを実際に見つけることができませんでした。

edit2:目標はOTPスキームに使用することであるため、署名するメッセージのサイズは小さく(<512バイト)、衝突は大きな問題にはなりません:2つのパーティがメッセージを知っていると仮定します、非常に短い署名を使用して、1人がもう1人に秘密鍵があることを確認してほしい。

19
Wam

短い署名の問題は、衝突が発生しやすくなることです。また、ファイルサイズは桁違いに異なる可能性があるため、(遅いハッシュを使用したり、反復を増やしたりして)実行を非常に長くすることは簡単ではありません。 「こんにちは」に安全に署名するのに十分なほど遅くすると、50ギガバイトのブルーレイリリースに署名するのは非常に困難になります。したがって、私たちに残された最も簡単なオプションは、ビット数を増やすことであり、アルゴリズムが他の方法で壊れていない場合は、衝突を取得するために必要な試行回数を増やすことです。

また、キーのサイズは署名のサイズとは関係がないことにも注意してください。署名はファイルのハッシュであるため、ハッシュのサイズによって署名のサイズが決まります。署名はファイルのハッシュであり、秘密鍵で暗号化されて、公開鍵で復号化し、独自のハッシュ計算と比較できます。パディングを必要とする暗号化スキームを使用しない限り、署名の長さはキーのサイズとは完全に無関係です。

編集:わかりました、更新された質問のために、あなたは実際に署名を探していないようです。署名はファイルのハッシュを取得して秘密鍵で暗号化するため、a)他のユーザーはファイルが変更されていないことを確認でき、b)他のユーザーはファイルを証明していることを確認できます。これは、誰かが同じハッシュ値に適合する別のファイルを作成できないために機能します。

あなたが探しているのは、侵入しようとしている人がキーを保持していることを確認できるチャレンジ/レスポンスです。これは通常、非対称キーではなく対称キーで行われ、タイムスタンプは暗号化されてからハッシュされて削減されます長さ。問題は、長さを短縮するためのハッシュがパブリック/プライベートシステムをスローすることです。これは、両側がアクションを実行できる必要があるためです。私は短い出力が秘密鍵の署名から得られると思いますが、対称鍵を使用するよりもかなり弱いと思われます(証明可能な理由はありませんが、私の知る限りではありません)。

4
AJ Henderson

この方向での最新の結果は、適切にタイトルが付けられた論文 " The Shortest Signatures Ever "(ePrint:2016/911)で、多変量​​暗号を使用しています。 80ビットのセキュリティレベルで110ビットの署名を達成すると主張しています。ただし、このスキームには次の欠点があります。

  • 比較的テストされていないセキュリティの前提((EC)DSA/BLSと比較)
  • より高いセキュリティレベルでの収益の減少(例:100ビットセキュリティには171ビットが必要)
  • 最小の署名の検証時間が遅い(〜1秒)
  • 比較的大きな公開鍵(25〜100キロバイト)

短い署名サイズ以外の1つの潜在的な利点は次のとおりです。

  • 多変量暗号法は、(EC)DSA/BLSよりも量子攻撃に対して耐性があると考えられています

非常に短い署名が本当に必要で、欠点に耐えられる場合は、試してみることができます。ただし、暗号化は本質的に保守的なテーマです。本当に必要な場合を除き、実績のあるスキームを使用する方がはるかに良いでしょう。

1
djao

(EC)DSAの代替はSchnoor署名方式です。これは、元の形式で、推測のために署名サイズを4tビットから3tビットに削減します2tビットセキュリティ、最大2t/2 キーごとの署名。たとえば、96ビットのセキュリティレベルでは、署名に36バイトが必要です。

参照の説明は次のとおりです。Clause-PeterSchnorr、 スマートカードによる効率的な署名の生成Journal of暗号学、1991 。このスキームは、DL問題が難しい注文$ q $のすべてのグループに適用できることが注記されています。

この question で考えられる変種について説明します。

  • Ed25519 ;のように、(EC)DSAなどの実証済みの弱点である署名に使用されているRNGを取り除き、確定的なMACに置き換えます。
  • 公開鍵/ユーザーIDでソルトされたハッシュを使用する。
  • 使用前にtビットハッシュを2tビットにハッシュし直します。

最後の2つの変更は、より強力なセキュリティ引数を目的としています(狭いtビットのパブリックハッシュは、2つのソルトハッシュの間にあります)。 not特定の設定の弱点を取り除くことを目的としています。

0
fgrieu