当前位置:首页 > 体育 >

对称密码技术有几个密钥

来源:原点资讯(www.yd166.com)时间:2023-10-31 18:03:56作者:YD166手机阅读>>

其中每一轮计算过程如下:

  1. SubBytes(字节替换):以字节大小为索引,与s_box表中字节映射
  2. ShiftRows(行移位-扩散):从上到下从左到右的顺序组成 4 * 4 数组,从 0 行开始,第 n 行向左平移 n 个字节
  3. MixColums(列混肴-扩散):对每一列进行矩阵运算,共四列
  4. AddRoundKey(轮密钥加):与轮密钥即子密钥异或运算

需要注意的是:

  • 最后一轮没有列混淆
  • 加密时:SubBytes -> ShiftRows -> MixColums -> AddRoundKey 解密时:AddRoundkey -> InvMixColums -> InvShiftRows -> InvSubBytes (Inv代表逆运算)

golang 代码实战:

func TestAesEncrypt(t *testing.T){ key:=[]byte{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01} cipherBlock,err:=aes.NewCipher(key) if err!=nil{ t.Error(err) } src:=[]byte{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08} encrptDst :=make([]byte,len(src)) cipherBlock.Encrypt(encrptDst,src) t.Log(encrptDst) plainDst:=make([]byte,len(encrptDst)) cipherBlock.Decrypt(plainDst, encrptDst) t.Log(plainDst) } //out [19 7 34 196 163 153 225 186 223 245 40 131 80 80 70 203] //out [1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8]

迭代模式

以上讨论的三种加密算法都是分组密码,每次只能处理特定长度的一块数据,例如 DES 和 3DES 能处理的这块数据长度为 8 bytes,AES 的为 16 bytes。而我们的日常需要加密的明文基本上都是大于这个长度,这就需要我们将明文的内容进行分组并迭代加密,这个迭代加密的方式就是模式。

ECB 模式

电子密码本模式(electronic codebook ),最简单的模式,将明文分组直接作为加密算法的输入,加密算法的输出直接作为密文分组。

CBC 模式

密文分组链接模式(Cipher Block Chaining),密文之间是链状的,明文分组跟上个密文分组异或之后作为加密算法的输入,加密算法的输出作为密文分组。第一个明文分组加密时需要一个初始化向量。

CFB 模式

密文反馈模式(Cipher FeedBack),上一个密文分组作为下一个加密算法的输入,加密算法的输出与明文分组异或结果作为密文分组。同样需要一个初始化向量

OFB 模式

输出反馈模式(OutPut FeedBack),上一个加密算法的输出作为下一个加密算法的输入,明文与加密算法的输出异或作为密文分组。需要初始化向量

CTR 模式

计数器模式(Counter),将计数器作为加密算法的输入,加密算法的输出与明文分组异或作为密文分组,计数器是累加的。需要一个初始的计数器值

以上各种模式,ECB 不推荐使用

golang 代码实战:

func TestCBCMode(t *testing.T) { key:=[]byte{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01} cipherBlock,err:=aes.NewCipher(key) if err!=nil{ t.Error(err) } src:=[]byte{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08} inv:=[]byte{0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08} cbcEncrypter:=cipher.NewCBCEncrypter(cipherBlock,inv) encrptDst :=make([]byte,len(src)) cbcEncrypter.CryptBlocks(encrptDst,src) t.Log(encrptDst) plainDst:=make([]byte,len(encrptDst)) cbcDecrypter:=cipher.NewCBCDecrypter(cipherBlock,inv) cbcDecrypter.CryptBlocks(plainDst,encrptDst) t.Log(plainDst) } //out [182 174 175 250 117 45 192 139 81 99 151 49 118 26 237 0 98 117 59 208 145 166 116 62 43 199 115 70 250 251 56 226] //out [1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8]

栏目热文

对称密码体制特征(对称密码体制的初级密钥如何产生)

对称密码体制特征(对称密码体制的初级密钥如何产生)

网络安全中有两类非常重要的密码体制:对称密钥密码体制和公钥密码体制。对称密钥密码体制使用相同的加密密钥和解密密钥,公钥...

2023-10-31 18:44:24查看全文 >>

对称密码技术中密钥有多少个

对称密码技术中密钥有多少个

对称加密对称加密: 是指在加密和解码时使用同一密钥的加密方式对称加密1、编码现代的密码都是建立在计算机的基础之上的,这是...

2023-10-31 18:43:35查看全文 >>

年检标怎么更换(电子年检标签怎么绑定)

年检标怎么更换(电子年检标签怎么绑定)

您在阅读前请点击上面的“关注”二字,后续会为您提供更多有价值的相关内容,感谢您的支持。我们常常听到过“改装车”,许多人的...

2023-10-31 18:20:42查看全文 >>

年检标怎么贴在静电贴上

年检标怎么贴在静电贴上

年检标识、保险标识等这一系列的标识,想必每位车主朋友都不陌生,尤其是用了比较久的老车,车子用久了,也难免在前风挡上贴了一...

2023-10-31 18:37:33查看全文 >>

13年车2022年要不要上检测线(13年十月的车今年要检测吗)

13年车2022年要不要上检测线(13年十月的车今年要检测吗)

从2022年10月1日非营运小/微型载客汽车摩托车再次调整检验周期,至今已有一年的时间了。但还是有很多车主朋友不清楚自己...

2023-10-31 17:58:48查看全文 >>

对称密钥密码体制的原理(对称密钥密码体制名词解释)

对称密钥密码体制的原理(对称密钥密码体制名词解释)

对称加密算法是一种在计算机领域应用广泛的加密方式。它在加密和解密过程中使用同一个密钥,因此也被称为共享密钥加密”。对称加...

2023-10-31 18:28:21查看全文 >>

对称密码体制问题(对称密码体制有哪些)

对称密码体制问题(对称密码体制有哪些)

密码在信息社会密码与战争有着密不可分的关系,通常战争的输赢取决于对信息的保密情况。战争中的一方将自己所传的信息伪装起来,...

2023-10-31 18:38:07查看全文 >>

对称密码算法的基本要素是什么(哪些算法是对称密码体制算法)

对称密码算法的基本要素是什么(哪些算法是对称密码体制算法)

在《起底密码学》里简单介绍了密码学发展的各个阶段,本文将介绍一下现代密码学中的对称加密和非对称加密算法。一、对称加密算法...

2023-10-31 18:07:33查看全文 >>

对称与非对称密码体制特征(对称密码和非对称密码)

对称与非对称密码体制特征(对称密码和非对称密码)

密码学体系目前主要分为两大主要研究领域:对称密码学和非对称密码学。对称密码学通常是对称加密的同义词,非对称密码学包括两个...

2023-10-31 18:38:06查看全文 >>

对称密码有哪些特点(对称密钥密码体制的特点)

对称密码有哪些特点(对称密钥密码体制的特点)

什么是对称加密和非对称加密?有什么特点?今天我们就来聊聊对称加密和非对称加密。一、加密概念密码学是研究编制密码和破译密码...

2023-10-31 18:25:42查看全文 >>

文档排行