用于计算给定任何AES-128循环密钥的Rijndael密钥计划的工具。

aeskeyschedule的Python项目详细描述


AES密钥计划工具

此工具可以用作python库或命令行工具

此项目在pypi上可用

pip3 install aeskeyschedule --user --upgrade

命令行工具

usage: aeskeyschedule [-h] [-r AES_ROUND] round_key

Tool to calculate the Rijndael key schedule given any AES-128 round key.

positional arguments:
  round_key             the round key in hex notation from which the full key
                        will be derived.

optional arguments:
  -h, --help            show this help message and exit
  -r AES_ROUND, --round AES_ROUND
                        The AES round of the provided key. Defaults to 0 (base
                        key).

示例用法

查看给定基本密钥的AES扩展密钥

$ aeskeyschedule 00000000000000000000000000000000
 0: 00000000000000000000000000000000
 1: 62636363626363636263636362636363
 2: 9b9898c9f9fbfbaa9b9898c9f9fbfbaa
 3: 90973450696ccffaf2f457330b0fac99
 4: ee06da7b876a1581759e42b27e91ee2b
 5: 7f2e2b88f8443e098dda7cbbf34b9290
 6: ec614b851425758c99ff09376ab49ba7
 7: 217517873550620bacaf6b3cc61bf09b
 8: 0ef903333ba9613897060a04511dfa9f
 9: b1d4d8e28a7db9da1d7bb3de4c664941
10: b4ef5bcb3e92e21123e951cf6f8f188e

使用最后一轮键反转AES-128密钥计划

$ aeskeyschedule --round 10 002a5e9033d14c1f03ed911164b9be02
 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
 1: 07060606adacacac07060606adacacac
 2: 94979793393b3b3f3e3d3d3993919195
 3: 1116bd4f282d86701610bb4985812adc
 4: 15f33bd83ddebda82bce06e1ae4f2c3d
 5: 81821c3cbc5ca1949792a77539dd8b48
 6: 60bf4e2edce3efba4b7148cf72acc387
 7: b191596e6d72b6d42603fe1b54af3d9c
 8: 48b6874e25c4319a03c7cf815768f21d
 9: 163f231533fb128f303cdd0e67542f13
10: 002a5e9033d14c1f03ed911164b9be02

python库

两个主要功能是key_schedulereverse_key_schedule

计算AES-128基本密钥,给出最后一轮密钥:

base_key=reverse_key_schedule(b'\xe2K\xbb"~\xe8\xb3\xe6u\x06_\xdb\x9b\xd6\x9bB',10)

使用AES-128基本密钥计算最后一轮密钥:

base_key=b'\x91\xa3\xba\x04\xe3\xdb:\x10\xc7$R\x15|]\xca\x87'expanded_key=key_schedule(base_key)assertexpanded_key[0]==base_keylast_round_key=expanded_key[10]

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

推荐PyPI第三方库


热门话题
java jogl列出所有图形设备   Java调度任务。保持重新启动   wsdl JAXB XmlID和XmlIDREF注释(从模式到Java)   java我可以使用带有LEMP的DigitalOcean上的JSP页面吗?   互操作如何将类型化集合从clojure传递到java?   java MinMax算法工作不正常   返回“未找到匹配索引”的java Google云数据存储   spring设计从一个平面文件中读取100K记录,并用Java将其处理到DB   java如何使用arraylist中先前定义的类   java我们如何为从internet下载的项目构建jar   我正在用java编写一个程序,它可以打印从1到x的数字(x是用户输入值)。这是使用for循环和方法语句   安卓中java代码的语法错误   泛型Java方法接受vararg并返回arraylist?