跳转到主要内容

未提供项目描述

项目描述

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 (2.9 kB 查看哈希值)

上传时间 源代码

由以下支持