|
目录 一、什么是加密?1.加密算法的定义和基本概念加密算法是一种数学函数,用于将原始信息(明文)转换为密文,使得未经授权的用户难以理解信息的内容。这个过程应该一个密钥,密钥是一个控制加密和解密过程的参数。加密算法关键分为对称加密算法和非对称加密算法。 2.对称加密算法原理:对称加密算法使用相同的密钥进行加密和解密。发送方和接收方必须共享该密钥。例如,当用户A要发送一条消息给用户B时,他们需要事先协商好一个密钥。用户A使用这个密钥对消息进行加密,然后将密文发送给用户B。用户B收到密文后,应用相同的密钥进行解密,得到原始消息。 常见算法:DES(数据加密标准):其中实用密钥长度为56位。由于密钥长度相对较短,现在已经不太安全,容易被暴力破解。例如,在早期的银行系统信息加密中曾经使用DES算法,但随着计算机计算能力的提升,其安全性受到挑战。就是它是一种比较早期的对称加密算法。DES采用64位的分组长度,但 AES(高级加密标准):目前应用十分广泛的对称加密算法。AES支持128位、192位和256位的密钥长度。它的分组长度为128位。例如,在无线网络安全协议(如WPA2)、磁盘加密(如WindowsBitLocker)等众多领域都有应用。AES的安全性较高,在合理的时间内很难经过暴力破解获取密钥。就是这 优点和缺点: 优点:加密和解密速度快,适用于大量内容的加密。因为利用相同的密钥,算法完成相对容易。 缺点:密钥管理困难。由于发送方和接收方应该共享密钥,在多个用户的网络环境中,密钥的分发和存储容易出现安全挑战。如果密钥泄露,整个加密环境就会失效。 3.非对称加密算法原理:非对称加密算法采用一对密钥,即公钥和私钥。公钥可以公开,任何人都可以获取。私钥则由所有者保密。当用户A要发送消息给用户B时,用户A利用用户B公布的公钥对消息进行加密,然后发送给用户B。用户B收到密文后,运用自己的私钥进行解密。反过来,用户B也可以使用自己的私钥对消息签名,用户A行使用用户B的公钥验证签名的真实性。 常见算法:RSA:这是最著名的非对称加密算法之一。 ECC(椭圆曲线密码学):ECC是基于椭圆曲线离散对数问题的非对称加密算法。 优点和缺点: 优点:密钥管理方便,公钥可以公开分发,不得像对称加密那样担心密钥的安全分发问题。并且可以用于数字签名,确保消息的来源和完整性。 缺点:加密和解密速度相对较慢,尤其是对于较长的消息或大量数据,计算成本较高。 二、AES1.AES(advanced encryption standard 高级加密标准)介绍
明文P 没有经过加密的数据。 秘钥K 用来加密明文的密码,在对称加密算法中,加密与解密的密钥是相同的。密钥为接收方与发送方协商产生,但不可以直接在网络上传输,否则会导致密钥泄漏,通常是通过非对称加密算法加密密钥,然后再凭借网络传输给对方,或者直接面对面商量密钥。密钥是绝对不可以泄漏的,否则会被攻击者还原密文,窃取机密数据。 AES加密函数 设AES加密函数为E,则C=E(K,P),其中P为明文,K为密钥,C为密文。也就是说,把明文P和密钥K作为加密函数的参数输入,则加密函数E会输出密文C。 密文C 经加密函数处理后的素材 AES解密函数 说,把密文C和密钥K作为解密函数的参数输入,则解密函数会输出明文P。就是设AES解密函数为D,则P=D(K,C),其中C为密文,K为密钥,P为明文。也就 2.对称加密算法与非对称加密算法的区别对称加密算法 密钥的传输比较麻烦。就是加密和解密用到的密钥是相同的,这种加密方式加密速度非常快,适合屡屡发送数据的场合。缺点 非对称加密算法 加密和解密用的密钥是不同的,这种加密方式是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合。优点是密钥传输方便。常见的非对称加密算法为RSA、ECC和EIGamal。 3.AES的基本结构
AES的基本结构是一个分组加密的框架,通常分为若干“轮”(round)来处理数据。AES的加密过程由初始轮、多个主轮和最后一个轮组成,每一轮执行特定的数据处理步骤,确保密文的安全性和混淆性。 在AES标准规范中,分组长度只能是128位,也就是说,每个分组为16个字节(每个字节8位)。密钥的长度可以应用128位、192位或256位。密钥的长度不同,推荐加密轮数也不同,如下表所示:
密钥长度是指在加密算法中使用的密钥的位数或字节数。它是加密强度的重要因素,通常以比(bit)为单位表示。密钥长度直接影响到加密算法的安全性和计算复杂度。 指分组加密算法在处理数据时,每次处理的固定长度数据块的大小,通常以字节(Bytes)或比特(Bits)为单位。就是分组长度 加密轮数(Number of Rounds)指的是对每个素材分组执行加密处理的重复次数。每一轮加密都是对数据进行一系列特定的操作,包括字节替换(SubBytes)、行移位(ShiftRows)、列混淆(MixColumns),以及与密钥的轮密钥加(AddRoundKey)运算。轮数的增加使得AES更具抗攻击性。
a. 密钥扩展(Key Expansion) 将输入的密钥通过一个密钥扩展算法,生成多个轮密钥(Round Keys)。 AES-128 会生成11个轮密钥(原密钥+10轮加密密钥)。
b. 初始轮执行(Initial Round) AddRoundKey:将明文和第一个轮密钥进行按位异或(XOR)操作。
c. 主导轮操作(MainRounds) 每一轮包括以下四个步骤: 运用S-Box(置换盒)对每个字节进行非线性替换,提高算法的安全性。 SubBytes(字节替换)
ShiftRows(行移位) 对状态矩阵的每一行按固定规则进行循环左移。
MixColumns(列混合) 对状态矩阵的每一列进行线性变换,增强列间的混淆性。
AddRoundKey(轮密钥加) 将状态矩阵与当前轮的轮密钥按位异或(XOR)。
d. 最终轮操作(Final Round) 和主要轮类似,但省略MixColumns(列混合)步骤。 (责任编辑:) |











