轻量级密码算法是用于保护计算资源有限的物联网和微型设备的资料创建和传输的专用密码算法。而Ascon作为是轻量级密码学标准算法,则更是轻量级密码算法中的佼佼者。下面我们就来了解一下Ascon加密算法。
Ascon算法简介
2018年8月,NIST开始征集轻量级密码算法标准,共收到了57份提交方案,其中Ascon以其较高的安全性以及较低的实现成本脱颖而出,最终在2023年2月7日被选为轻量级密码标准。
Ascon算法是一套密码族,包含7种密码算法,由奥地利Graz大学、德国Infineon公司,以及Intel实验室等单位共同设计并维护。其中AEAD和Hash被 NIST 选为了轻量级密码算法标准。AEAD是一种同时具备保密性、完整性和可认证性的加密形式,可以同时在算法内部实现了加密和认证的算法。
Ascon算法的原理
Ascon算法既是一种轻量级的哈希算法,也是一种轻量级的加密算法。其原理是利用基于Sponge的操作模式的单个轻量级置换和SPN置换,进行轻量级的哈希和加密。
Ascon算法对输入的密钥和明文进行一系列的操作,从而得到加密后的密文;再通过反向操作,使用同样的置换和密钥,对密文进行解密,得到原始的明文。
Ascon算法的加密过程
- 输入:密钥K、明文P、关联信息A。
- 将明文P分为m个64位块,每个块用P表示。
- 初始化计数器,用C表示。
- 对每个P,进行以下操作:
a.通过密钥K和轮操作函数pa,计算出中间值S。
b.将S分为两个部分,一个是外在部分Sr(r bits),一个是内在部分Sc(c bits),其中r+c=64,且r代表rate,c代表capacity。
c.通过密钥K和轮操作函数pb,对Sr和Sc进行加密,得到密文Cr和Dc。
d.将Cr和Dc合并成一个新的块P',作为P的加密结果。
e.如果还有下一个明文块P,则将C加1,然后返回步骤4;如果没有下一个明文块P,则结束加密过程。
Ascon算法的解密过程
- 输入:密钥K、密文P'、关联信息A。
- 将密文P'分为m个64位块,每个块用P'表示。
- 初始化计数器,用C表示。
- 对每个P',进行以下操作:
a.通过密钥K和轮操作函数pb,对Cr和Dc进行解密,得到Sr和Sc。
b.将Sr和Sc合并成一个新的块P,作为P'的解密结果。
c.如果还有下一个密文块P',则将C加1,然后返回步骤4;如果没有下一个密文块P',则结束解密过程。
Ascon算法的优缺点
Ascon算法的速度非常快,能耗非常低,在实际应用中可以在硬件上长时间运行。并且Ascon算法具有不错的灵活性,可以满足大多数需要轻量级密码学的用例的需求。
但Ascon算法归根结底还是轻量级加密算法,它的安全性是不能和AES等加密算法相比的,并且Ascon算法的应用范围也相对较窄,主要应用于一些特定的领域和场景。
免责声明:素材源于网络,如有侵权,请联系删稿。