3

デバイスに署名したいのですが、署名をデバイスに保存するために 64 ビットが必要です。このデバイスには MAC アドレスとその他の詳細 (約 30 バイト相当) があり、署名を作成するためにマングルできます。

可能であれば、有効な署名の作成方法を知らなくても署名が有効であることを確認できるように、メソッドを一方向にしたいと考えています。ほとんどの公開鍵と秘密鍵にはこの機能がありますが、48 バイトの長さの署名を生成します (私は 8 バイトしか持っていません)。

Python での実装はプラスです。

ありがとう

編集:皆さん、アドバイスをありがとう。これを行うための安全な方法はないように思えますが、攻撃者にとって適度に不便な方法しかありません。おそらく、秘密のビットシャッフルと組み合わせた暗号化ハッシュを使用します。これは、私の(非常に弱い)「セキュリティ」の他のリンクと同じくらい安全です。

4

3 に答える 3

5

ハッシュ関数とデジタル署名は非常に異なるものです。

デジタル署名のサイズは、基になるハッシュ関数とキーの長さによって異なります。したがって、理論的には、64 ビット署名を生成する RSA 実装を作成できますが、それは非常に弱い署名になります。

鍵の長さが短い場合は、楕円曲線暗号を検討することをお勧めします。

編集:はい、私は暗号学者です。

編集 2:それでも、ハッシュ関数のみが必要な場合は、Fernando Miguelez が提案したように、elf64 または RIPEMD-64 を見ることができます。

編集 3:計算すると、ECC で 16 ビット キーを使用して 64 ビット署名を生成する必要がありますが、これは非常に弱いものです。ECC の場合、128 ビット未満のものはすべて弱いと見なすことができます。RSA の場合、これは 1024 ビットです。

于 2008-11-10T23:25:41.150 に答える
3

基本的に必要なのは、 Ripemd-64 や elf-64 などの 64 ビットの暗号化ハッシュ関数です。次に、暗号化方式でハッシュを暗号化し、64 ビットの署名を取得します。唯一の問題は、非暗号アナリストの観点から見ると、64 ビットは通常の 128 ビットを超えるハッシュよりもはるかに弱い署名を提供することです。それにもかかわらず、それはまだあなたのアプリケーションに適している可能性があります.

于 2008-11-10T22:45:07.860 に答える
0

標準のハッシュ関数 (MD5 SHA1) を使用して、最初または最後の 30 バイトのみを使用できます。
ハッシュ関数が生成するバイト数はかなり恣意的です - それは明らかにスペースと一意性の間のトレードオフです。彼らが使用する署名の長さについて特別なことは何もありません。

編集 - 申し訳ありませんが、MD5 が 32 バイトを返したと思っていました。

于 2008-11-10T22:37:50.980 に答える