未提供项目描述
项目描述
AES密钥封装
实现RFC 3394 AES密钥封装/解封装
http://www.ietf.org/rfc/rfc3394.txt
同时,根据RFC 5649的备用IV
http://www.ietf.org/rfc/rfc5649.txt
这是一个对称密钥加密算法。它应该仅用于加密密钥(短且全局唯一的字符串)。
在文档中,用于此类算法的密钥通常称为KEK(密钥加密密钥),以区分数据加密密钥。
用法
import binascii
from aes_keywrap import aes_wrap_key, aes_unwrap_key
KEK = binascii.unhexlify("000102030405060708090A0B0C0D0E0F")
CIPHER = binascii.unhexlify("1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5")
PLAIN = binascii.unhexlify("00112233445566778899AABBCCDDEEFF")
assert aes_unwrap_key(KEK, CIPHER) == PLAIN
assert aes_wrap_key(KEK, PLAIN) == CIPHER
为什么需要特殊的密钥加密算法?
简而言之:大小。通过假设密钥具有足够的熵以实现全局唯一,并且足够小,不需要流加密,aes-keywrap能够避免增加密文大小的IV(初始值)或nonce。这可以节省大量空间——如果被加密的数据是32字节的AES-256密钥,AES-GCM将产生60字节的密文(87%的冗余),AES-CTR或AES-CBC将产生48字节的密文(50%的冗余),并且也不会提供认证加密,但aes-keywrap将产生32字节的密文(无冗余)。
在有许多密钥生成和加密的应用程序中(例如,数据库中每行的单独数据加密密钥),这种冗余可能很大。
另一个重要用例是与现有系统的兼容性。
项目详情
关闭
aes-keywrap-17.12.1.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 0977f08e80f66aa6c2591eca3716ef8ab9e7ee7ad9cd5fb63e72c6308bda2619 |
|
MD5 | 4402698e3c23f8582c9964e52f46ef6e |
|
BLAKE2b-256 | 40be631f1dd7a65c1ee7419fff826073620e50055d8e77a7dae152436250bf1a |