Libsodium

PyNaCl 文件和 libsodium 文件之間的差異

  • June 18, 2021

因此,如果我們看這裡,它表明 libsodium 為此使用了三種 3 種不同的算法,這對我來說聽起來很奇怪,因為沒有任何跡象表明除了 Curve25519 之外的任何東西都用於這些特定功能(這些框專門採用私鑰和公鑰,沒有任何跡象表明那裡是 XSalsa20 的任何密鑰生成):

https://doc.libsodium.org/public-key_cryptography/authenticated_encryption#algorithm-details

如果我們看這裡,據說它的 python 實現只使用了 Curve25519:

https://pynacl.readthedocs.io/en/latest/public/#algorithm


這裡發生了什麼?

python 文件只列出了公鑰算法,而不是它使用的所有算法。Poly1305 和 XSalsa20 不是公鑰算法,因此未列出。PyNacl 的文件是不完整的,它在內部使用了 libsodium。

值得注意的是,Curve25519 僅用於密鑰交換(在 X25519 中),從不直接用於加密。Ed25519 使用與 Curve25519 雙有理等效的曲線用於簽名。雖然可以在非標準且不是一個好主意的 ElGamal 加密系統中使用 Curve25519。

引用自:https://crypto.stackexchange.com/questions/91639