当前位置:首页 > 体育 >

对称密码技术有几个密钥

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

密码学系列 - 对称加密

本文讨论的对称加密算法主要包括 des、3DES、AES

DES

明文:64 bit 密文:64 bit 密钥:56/64 bit(每 7 位插入一个校验位的时候为 64 bit) 其设计思想充分体现了香农提出的混淆和扩散原则

对称密码技术有几个密钥,(1)

DES 使用的是 Feistel 结构来加密的,一共需要 16 轮,加密过程如下:

  1. 将明文进行初始置换(通过置换表)
  2. 将置换后的数据分为左右 L1 R1 各 32 bit
  3. 将 48 bit 的子密钥与 R1 作为轮函数F的输入
  4. 将 L1 与轮函数的输出异或运算,得到 L1密文
  5. 将 L1 密文与 R1 交换位置,分别作为下一轮的 R2,L2
  6. 将 2-5 再重复 15 次
  7. 将 L17 R17 交换位置,并拼接为 64bit 数据
  8. 将 64bit 数据进行逆初始置换,得到最终密文

需要注意的是:

  • 子密钥在每一轮中都是不一样的
  • 每一轮之间会将左侧和右侧对调(右侧没有加密)
  • 解密的过程就是将输出用相同的子密钥再走一遍,如果加密的子密钥顺序是key1 key2 key3,则解密的子密钥为key3 key2 key1
  • 轮函数可以设计为不可逆函数如hash,对解密没有影响

对称密码技术有几个密钥,(2)

golang 代码实战:

func TestDesEncrypt(t *testing.T) { key:=[]byte{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01} cipherBlock,err:=des.NewCipher(key) if err!=nil{ t.Error(err) } src:=[]byte{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: [206 173 55 61 184 14 171 248] //out: [1 2 3 4 5 6 7 8]

三重DES

明文:64 bit 密文:64 bit 密钥:56/64 * 3 bit(加入校验位的时候为64 bit)

为了增加 DES 的强度,明文经过 3 次 DES 处理后变成最后的密文,因此密钥长度为 56/64 * 3 bit。3 次 DES 处理并不是简单的 3 次加密的过程,而是加密、解密、加密,解密的过程相应的就是解密、解密、解密。这样设计是因为在 3 个密钥相同时,可以兼容 DES 算法

对称密码技术有几个密钥,(3)

golang 代码实战:

func TestTripleDesEncrypt(t *testing.T) { key:=[]byte{0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01} cipherBlock,err:=des.NewTripleDESCipher(key) if err!=nil{ t.Error(err) } src:=[]byte{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) } //此处3个密钥相同,兼容DES //out: [206 173 55 61 184 14 171 248] //out: [1 2 3 4 5 6 7 8]

AES

明文:128 bit 密文:128 bit 密钥:128/192/256 bit (分别需要10/12/14轮)

AES 标准最后评选出的算法是 Rijindale 算法,该算法支持密钥 128/192/256 bit ,分别需要 10/12/14 轮,本文讨论的是 128 bit密钥。它的加密过程并没有使用 DES 的 feistel 结构,而是使用了一种新的 SPN 结构,需要 10-14 轮计算,如下图:

对称密码技术有几个密钥,(4)

首页 123下一页

栏目热文

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

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

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

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查看全文 >>

文档排行