没有项目描述

aes-keywrap的Python项目详细描述


AES密钥包

rfc 3394 aes密钥包装/解包的实现

http://www.ietf.org/rfc/rfc3394.txt

此外,根据RFC 5649,替代IV

http://www.ietf.org/rfc/rfc5649.txt

这是一种对称密钥加密算法。它应该只被使用 加密密钥(短且全局唯一的字符串)

在文档中,用于这种算法的密钥是 通常称为kek(密钥加密密钥),用于区分 它来自数据加密密钥。

用法

importbinasciifromaes_keywrapimportaes_wrap_key,aes_unwrap_keyKEK=binascii.unhexlify("000102030405060708090A0B0C0D0E0F")CIPHER=binascii.unhexlify("1FA68B0A8112B447AEF34BD8FB5A7B829D3E862371D2CFE5")PLAIN=binascii.unhexlify("00112233445566778899AABBCCDDEEFF")assertaes_unwrap_key(KEK,CIPHER)==PLAINassertaes_wrap_key(KEK,PLAIN)==CIPHER

为什么要使用特殊的密钥加密算法?

一句话:大小。假设钥匙足够高 熵是全局唯一的,并且足够小 不需要流加密,AES密钥包可以避免 增大大小的iv(初始值)或nonce 密文的。这可能是一个重要的 节省—如果加密的数据是32 字节AES-256密钥,AES-GCM将导致 60字节密文(87%开销),将导致AES-CTR或AES-CBC 在一个48字节的密文中(50%的开销),也不会提供 经过身份验证的加密,但AES密钥包 会产生32字节的密文(无开销)。

在一个生成了许多密钥的应用程序中 和加密的(例如 数据库中的每一行),此开销可能非常大。

另一个重要的用例是与 现有系统。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
javascript如何找到socket。同一局域网上的IO服务器?   将Java代码格式化为Word/RTF格式   java学习对象以及如何将分配的变量封装到私有变量   java Websocket客户端不在Tomcat中工作   java如何在点击按钮时打开本机表情键盘?   java使用哪个Maven GlassFish插件?   Eclipse Java构建路径不允许添加外部JAR   继承Java6集合。勾选适当的用法   JavaApacheDateUtils:使用多个模式解析日期   java hibernate如何生成查询?   具有id或链接的java Dropbox下载文件或文件夹   java模态对话框未在PrimeFaces 5上显示   java将类对象转换为人类可读的字符串   更新数据库中字段的java通用方法   java无法通过Apache Tomcat访问网络文件夹