AES-CTR

AES-CTR即AES算法的计算器模式(Counter (CTR)),这种计算器模式不常见,在CTR模式中, 有一个自增的算子(IV,后四个字节相当于计数器,每次计算递增),这个算子用密钥加密之后的输出和明文异或的结果得到密文,相当于一次一密。这种加密方式简单快速,安全可靠,而且可以并行加密,但是在计算器不能维持很长的情况下,密钥只能使用一次。CTR加密过程的示意图如下所示:
在这里插入图片描述

##############################################################
Block Cipher Modes of Operation
Counter (CTR) 
Initial Counter is
	F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFEFF 
Plaintext is
	6BC1BEE2 2E409F96 E93D7E11 7393172A 
	AE2D8A57 1E03AC9C 9EB76FAC 45AF8E51 
	30C81C46 A35CE411 E5FBC119 1A0A52EF 
	F69F2445 DF4F9B17 AD2B417B E66C3710 
############################################################## 
CTR-AES128 (Encryption) 
Key is
	2B7E1516 28AED2A6 ABF71588 09CF4F3C 
Plaintext is
	6BC1BEE2 2E409F96 E93D7E11 7393172A 
	AE2D8A57 1E03AC9C 9EB76FAC 45AF8E51 
	30C81C46 A35CE411 E5FBC119 1A0A52EF 
	F69F2445 DF4F9B17 AD2B417B E66C3710 
	
	Block #1
	InputBlock F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFEFF 
	OutputBlock EC8CDF73 98607CB0 F2D21675 EA9EA1E4 
	Text-In 6BC1BEE2 2E409F96 E93D7E11 7393172A 
	Text-Out 874D6191 B620E326 1BEF6864 990DB6CE 
	
	Block #2
	InputBlock F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFF00 
	OutputBlock 362B7C3C 67735163 18A077D7 FC5073AE 
	Text-In AE2D8A57 1E03AC9C 9EB76FAC 45AF8E51 
	Text-Out 9806F66B 7970FDFF 8617187B B9FFFDFF 
	
	Block #3
	InputBlock F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFF01 
	OutputBlock 6A2CC378 7889374F BEB4C81B 17BA6C44 
	Text-In 30C81C46 A35CE411 E5FBC119 1A0A52EF 
	Text-Out 5AE4DF3E DBD5D35E 5B4F0902 0DB03EAB 
	
	Block #4
	InputBlock F0F1F2F3 F4F5F6F7 F8F9FAFB FCFDFF02 
--------------------------------------------------------------
	OutputBlock E89C399F F0F198C6 D40A31DB 156CABFE 
	Text-In F69F2445 DF4F9B17 AD2B417B E66C3710 
	Text-Out 1E031DDA 2FBE03D1 792170A0 F3009CEE 
Ciphertext is
	874D6191 B620E326 1BEF6864 990DB6CE 
	9806F66B 7970FDFF 8617187B B9FFFDFF 
	5AE4DF3E DBD5D35E 5B4F0902 0DB03EAB 
	1E031DDA 2FBE03D1 792170A0 F3009CEE 
==============================================================

整体展示如下:
在这里插入图片描述

********************* AES-CTR Encrypt *********************
Key=2B7E151628AED2A6ABF7158809CF4F3C
IV=F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF
InData=6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5130C81C46A35CE411E5FBC1191A0A52EFF69F2445DF4F9B17AD2B417BE66C3710
EncData=874D6191B620E3261BEF6864990DB6CE9806F66B7970FDFF8617187BB9FFFDFF5AE4DF3EDBD5D35E5B4F09020DB03EAB1E031DDA2FBE03D1792170A0F3009CEE
加密完成

计算结果跟样例一致,完成。
如果有需要,可付费修改,或提供计算软件。联系微信(tainshanjinyou),非主业,赚个奶茶钱!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
AES-128-CTR是一种对称加密算法,它使用128位密钥和计数器模式(CTR)进行加密。CTR模式将计数器作为输入,然后使用加密函数生成密钥流,该密钥流与明文异或以生成密文。由于CTR模式中的加密和解密使用相同的操作,因此CTR模式可以用于加密和解密。 以下是使用Python中的pycryptodome库实现AES-128-CTR加密和解密的示例代码: ```python from Crypto.Cipher import AES from Crypto.Util import Counter import binascii # 加密函数 def aes_ctr_encrypt(key, iv, data): # 将iv转换为计数器对象 ctr = Counter.new(128, initial_value=int(binascii.hexlify(iv),16)) # 创建AES加密器 aes = AES.new(key, AES.MODE_CTR, counter=ctr) # 加密数据 ciphertext = aes.encrypt(data) # 返回密文 return ciphertext # 解密函数 def aes_ctr_decrypt(key, iv, ciphertext): # 将iv转换为计数器对象 ctr = Counter.new(128, initial_value=int(binascii.hexlify(iv), 16)) # 创建AES解密器 aes = AES.new(key, AES.MODE_CTR, counter=ctr) # 解密数据 data = aes.decrypt(ciphertext) # 返回明文 return data # 测试 key = b'2B7E151628AED2A6ABF7158809CF4F3C' iv = b'F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF' data = b'6BC1BEE22E409F96E93D7E117393172AAE2D8A571E03AC9C9EB76FAC45AF8E5' ciphertext = aes_ctr_encrypt(key, iv, data) print('加密结果:', binascii.hexlify(ciphertext)) plaintext = aes_ctr_decrypt(key, iv, ciphertext) print('解密结果:', plaintext) # 输出: # 加密结果: b'874d6191b620e3261bef6864990db6ce9806f66b7970fdff8617187bb9fffdff5ae4df3edbd5d35e5b4f09020db03eab1e031dda2fbe03d1792170a0f3009cee' # 解密结果: b'6bc1bee22e409f96e93d7e117393172aae2d8a571e03ac9c9eb76fac45af8e5' ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值