明文:任何人见字符(文)知意;暗文:没有密钥解码则见字符(文)不知意。
AES(Advanced Encryption Standard)高级加密标准为常见的对称型加密算法(微信小程序加密传输是用AES体系中加密算法)。对称型加密算法就是加密密钥和解密密钥采用相同的密钥规则。
加密流程图
明文P:没有经过加密的数据信息(任何人见文知意)
密钥K:用来对明文进行加密的加密规则体系。在对称型加密算法中,发送方加密时采用的密钥k与接收方解密时采用的密钥k是相同的。密钥为接收方与发送方协商产生遵循规则数据本,但密钥本分别放置在发送方和接收方2方各自的本地端,密钥本包不可直接在网络上传输,避免密钥泄漏。密钥本的处理:如果密钥本采用网络传输则通常通过非对称型加密算法对待网络传输的密钥本本身进行加密,然后把加密后的密钥本通过网络传输给接收方,或方式2:发送方和接收方直接面对面当面的商量密钥本规则而后直接将密钥本规则直接储存在2方各自的本地端。规则密钥本绝对不可以泄漏,密钥本一旦泄漏,第3方攻击方将会轻易的将攻击截取到的暗文解密为相应的明文,窃取机密数据信息。
密文C(暗文)
明文数据信息经加密函数处理后获得的不知意内容文本。
AES加密函数E
C = E(K, P),其P为明文,K为密钥,C为密文。把明文P和密钥K作为加密函数E的入参输入,则加密函数E会输出密文C。
AES解密函数D
P = D(K, C),其C为密文,K为密钥,P为明文。把密文C和密钥K作为解密函数D的入参输入,则解密函数会输出明文P。
对称型加密算法与非对称型加密算法区别:
对称型加密算法:
发送方加密过程和接收方解密过程采用相同的密钥,这种方式加密解密动作速度非常快,适合频繁发送数据的场合。缺点是密钥本的传输比较麻烦。
非对称型加密算法:
发送方加密过程和接收方解密过程采用不同的密钥本,这种方式加密是用数学上的难解问题构造的,通常加密解密的速度比较慢,适合偶尔发送数据的场合(不频繁)。优点是密钥本传输方便。常见非对称型加密算法为RSA、ECC和EIGamal。
一般通过非对称型RSA加密算法对AES对称型加密算法的密钥本进行加密,将加密后的密钥本传输到接收方,接收方依据获取到的AES密钥本的加密后的数据进行解密获取解密后的AES密钥本。而后发送方和接收方采用AES密钥本实现对普通的数据内容信息的通信。
AES基本结构
AES(对称型加密算法)采用分组加密方式,分组加密方式就是把明文信息拆分成多组,每组长度相等,每次加密其中一组数据,直到加密完所有的分组即加密完整个明文信息。在AES标准规范体系中,每个分组的长度只能消耗128位编码,就是说每个分组为16个字节长度(每个字节长度对应8位01编码)。密钥本的长度可以使用128位编码、192位编码或256位编码。密钥本的编码长度不同,推荐不同的加密轮数,如下表所示:
这里分析的是AES-128,也就是密钥本的长度为128位编码,加密轮数为10轮加密。AES的加密公式为C = E(K,P),在加密函数E中ÿ