用于加密应用的指令集扩展之AES相关探究
在加密领域,私钥(对称密钥)密码系统和公钥密码系统有着不同的应用场景。私钥密码系统主要用于两方之间大量通信数据的加密和解密,而公钥密码系统通常用于身份验证、对称算法会话密钥的交换、数字签名以及其他涉及少量信息的安全操作。这是因为公钥方法的计算成本远高于私钥方法。因此,高效实现私钥算法对于大量数据的加密和解密至关重要。
1. AES算法概述
AES(高级加密标准)是一种广泛使用的对称密钥加密算法。它基于Rijndael分组密码,于2000年被美国政府采纳为新的高级加密标准,并在2001年由FIPS标准化。AES因其安全性、灵活性以及在各种架构(从8位处理器到更高位数)的硬件和软件中都具有良好的可实现性,而被越来越多的应用和系统所采用。
AES是一种块密码,对128位块进行操作,支持128、192和256位密钥。128位块被视为一个4x4字节矩阵(状态),加密和解密操作就在这个矩阵上进行,包括行和列的置换以及根据多项式模运算进行字节替换。以下是AES加密的伪代码:
AES_encrypt(in, out, w)
byte in[4*4],
byte out[4*4],
word w[4*Nr+1]
{
byte state[4,4];
state = in;
// Initial AddRoundKey
AddRoundKey( state, w[0, 3] );
for round = 1 step 1 to Nr-1
// (Nr-1) rounds
{
SubBytes(stat
超级会员免费看
订阅专栏 解锁全文
1781

被折叠的 条评论
为什么被折叠?



