没有项目描述

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第三方库


热门话题
java Android同步不同页面上的按钮   java评测每个类收集的垃圾对象实例数   java(Spring MVC+Hibernate 4+Test 4)自动连线DAO返回NULL   java Android编辑文本和虚拟键盘   java Selenium与BrowserMobProxy   JAVAlang.NoClassDefFoundError:com/sun/jersey/spi/inject/Errors$关闭原因?   java为什么在我成功登录后仍然会出现“不正确的帐户或密码或用户类型”   安卓应用程序在重新启动java时崩溃。网UnknownHostException:无法解析主机   多线程在Java中同步共享静态对象的正确方法是什么?   未调用自定义注释的java类验证(约束类)   java如何将指定目录的存档文件放入所需位置?   java如何识别Selenium中的每个编辑文本字段,如果它们的Xpath都相同   使用gwtmockito/mockito的java简单单选按钮单元测试?