密码学实验题_03.3_AES实验_【Rijndael-GF】和【GF(2^8)上的本源多项式】等(基于Sage)

本文详细介绍了基于Sage的AES实验,包括利用Rijndael-GF进行AES加解密操作,并探讨了如何构建具有特定不可约多项式的有限域GF(2^8),同时解析了AES的S盒实现和仿射变换过程。
摘要由CSDN通过智能技术生成

密码学实验题_03.3_AES实验_【Rijndael-GF】和【GF(2^8)上的本源多项式】等(基于Sage)

个人关于【3. AES实验】的思考理解(基于Sage的Python源码)
     目录:

       内容 1) 利用Rijndael-GF完成AES的加解密操作(参考Sage Reference中的Rijndael-GF)
       内容 2) (思考题)用Sage构建一个具有256个元素的有限域,令“a”表示生成元,且该有限域的不可约多项式为“a^8 + a^4 + a^3 + a + 1”。(注:默认构建的GF(2^8)对应的不可约多项式不是该多项式,可检测)。


3. AES实验
1)利用Rijndael-GF完成AES的加解密操作(参考Sage Reference中的Rijndael-GF)

# 利用Rijndael-GF完成AES的加解密操作 
from sage.crypto.mq.rijndael_gf import RijndaelGF
aes_rgf = RijndaelGF(4, 4)
print(aes_rgf)

# Sage Reference里面的例子:
#      http://0.0.0.0:6667/kernelspecs/sagemath/doc/reference/cryptography/sage/crypto/mq/rijndael_gf.html
text_plain = '3243f6a8885a308d313198a2e0370734'
print("明文(16字节,4*4矩阵):", end="")
print(text_plain)
key = '2b7e151628aed2a6abf7158809cf4f3c'
print("密钥(16字节,4*4矩阵):", end="")
print(key)
text_expected_ciphertext = '3925841d02dc09fbdc118597196a0b32'

# AES加密 
text_cipher = aes_rgf.encrypt(text_plain, key) 
print("密文(16字节):", end="")
print(text_cipher)

# AES解密
text_decrypt_output = aes_rgf.decrypt(text_cipher, key)
print("再次解密后的输出:", end="")
print(text_decrypt_output)

# 《密码编码学与网络安全——原理与实践(第7版,威廉·斯托林斯)》的 P124页的 AES例子
text_P124_plain = '0123456789abcdeffedcba9876543210'
print("明文(P124页的AES例子): ", end="")
print(text_P124_plain)
text_P124_key = '0f1571c947d9e8590cb7add6af7f6798' 
print("密钥(P124页的AES例子): ", end="")
print(text_P124_key)
# 加密:
text_P124_cipher = aes_rgf.encrypt(text_P124_plain, text_P124_key)
print("加密后的密文(P124页的AES例子): ", end="")
print(text_P124_cipher)
print("结果与P124页上相同!")
print("另外,邀请大家继续看【★《The Design of Rijndael:AES — The Advanced Encryption Standard》电子书2002.pdf】的P230例子")

# ★《The Design of Rijndael:AES — The Advanced Encryptio
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值