2、深入解析 Simon 和 Speck 块密码在 AVR 8 位微控制器上的实现

深入解析 Simon 和 Speck 块密码在 AVR 8 位微控制器上的实现

在当今数字化时代,数据安全至关重要。块密码作为保障数据安全的重要手段,在各种设备上的高效实现一直是研究的热点。本文将详细探讨 Simon 和 Speck 这两种块密码在 AVR 8 位微控制器上的不同实现方式及其性能表现。

Simon 块密码的不同实现
标准实现

Simon 64/128 的标准实现中,加密成本为 253 周期/字节。在代码大小方面,除了加载指令外,每条指令在闪存中存储所需的字节数是其执行周期数的两倍。加载指令需要 8 字节闪存,扩展密钥存储在 44×4 = 176 字节的闪存中,加上计数器、加载明文、存储密文等其他开销,实际使用的闪存总量为 290 字节,且该实现未使用 RAM。

高吞吐量/低能耗实现

这种实现方式适用于加密多个数据块的场景。其加密过程是先将所有轮密钥放入 RAM 中,直到数据流中的所有块都被加密。对于 Simon 64/128,我们将代码展开四轮并迭代 11 次来完成 44 轮加密。由于密钥从 RAM 加载,加载操作仅需 8 周期,而从闪存加载则需要 12 周期。这种实现的成本为 221 周期/字节,加密算法的代码大小约为 68×4 = 272 字节,加上密钥调度和其他开销,共使用 436 字节的闪存,同时需要 44×4 = 176 字节的 RAM 来存储轮密钥。

以下是该实现的流程图:

graph TD;
    A[开始] --> B[生成轮密钥并放入 RAM];
    B --> C[展开四轮代码
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值