0

Java の spongycastle を使用して、curve25519秘密鍵 (32 バイト) と公開鍵 (33 バイト) を生成できます。

同様にPythonの場合、Naclライブラリを使用してcurve25519いますが、ここで生成される公開鍵は32バイトのみです。公開鍵の y 座標が 1 バイト欠落しています。

from nacl.public import PrivateKey
import binascii

privKey = PrivateKey.generate()
pubKey = privKey.public_key

print("privKey:", binascii.hexlify(bytes(privKey)))
print("pubKey: ", binascii.hexlify(bytes(pubKey)))

Naclライブラリが公開鍵を圧縮していない理由はありますか?

4

1 に答える 1

0

spongycastle(Java) と PyNacl(Python) は、まったく異なる 2 つのライブラリです。

PyNacl(Python) と LazySodiumJava(Java) は C ライブラリ libsodium から派生したもので、32 ビット キーのみを生成できます。

spongycastle(Java) と一致する他の Python パッケージを探すことができると思います。

于 2020-08-13T15:39:37.460 に答える