密码学基础教程:加密与解密学习心得分享

更新:10-29 民间故事 我要投稿 纠错 投诉

算法是将普通或可理解的信息与一串数字(密钥)结合起来以产生不可理解的密文的步骤。

密钥是用于编码和解密数据的算法。

在安全保密方面,可以通过适当的密钥加密技术和管理机制来保证网络信息通信的安全。

大纲介绍

常用的加密解密方法主要有以下放大类别:

基本加密方法对称加密方法非对称加密方法下面我们简单介绍一下这些加密方法。

加密解密技术

我们先来了解一下加解密技术。

数据加密和数据解密是一对逆过程。

我们先看加解密公式:

加密:img数据加密采用加密算法E和加密密钥K1将明文P转换为密文C,用上式表示。

解密:img 数据解密是数据加密的逆过程。解密算法D和解密密钥K2将密文C转换为明文P。

从下图我们可以清晰的看到数据加解密翻新过程:

img发送端将明文P通过加密算法E和加密密钥Ke生成密文C,然后传输到接收端。接收端收到密文后,通过解密算法D和解密密钥Kd对密文C进行解密。最后恢复明文P。

了解了整个加密过程,我们再来看看上面提到的三种加解密方式。

基本加密方法

基本加密方式只需分为:

位移法根据一定的规则,将明文中的位或字符的顺序重新排列形成密文,而字符本身保持不变。例如,你好世界!我们可以把它改成:lord l!oleh,只需要遵循一定的规则就可以解锁。

置换法按照一定的规则,用一个字符替换(替代)另一个字符,形成密文。让我们向世界问好!举个例子,商定一个简单的算法,将h改为9,rc,l,那么结果就是:9e##o woc##d!只要解密并逆向即可,非常简单。

对称加密技术

对称密钥加密,又称对称加密私钥加密共享密钥加密,是密码学中加密算法的一种。此类算法使用相同的密钥进行加密和解密,或者使用两个可以轻松相互推导出来的密钥。实际上,这组密钥成为两个或多个成员之间的共同秘密,以维持排他性通信。上面的说法可能有点苛刻。让我们举一个简单的例子。 假设小明和小红正在考试。他们就算法达成一致。 当小明连续咳嗽三声时,小红看向小明。如果小明摸了摸他的左耳,那就意味着小红可以把答案传递给小明。如果没有的话,可能是小明感冒了……那怎么发送答案呢?小红摸左耳朵代表A, 摸右耳朵代表B,左手抠鼻子代表C,右手抠鼻子代表D怎么样,通过上面的简单例子是不是更容易理解呢?对称加密是双方都同意的算法。通过这个算法进行加密和解密。

对称加密类型

常用的对称加密代码主要分为以下几类:

DES Triple DES (TDEA) 或3DESRC-5IDEAAESDES主要使用替换和移位方法进行加密。它使用56 位密钥来加密64 位二进制数据。每次加密可以对64 位输入数据执行16 轮编码。输入的64位原始数据经过一系列替换和移位后转换为不同的64位输出数据。 DES算法运算速度快,密钥生成简单。

三重DES在DES的基础上采用三重DES,使用两个56位密钥k1和k2。发送方k1加密,k2解密,然后使用k1加密。接收方使用k1解密,k2加密,然后k1解密。

RC-5引入了一种新的密码学基本变换数据相关旋转方法,即一个中间字是其他中间低位确定的循环移位结果,以提高密码强度。

IDEA是国际上在DES算法基础上发展起来的数据加密算法,类似于Triple DES。密钥长度为128 位。

AES基于排列和排列运算。组合列重新排列数据,替换将一个数据单元替换为另一个数据单元。可以使用密钥128、192 和256,并且可以使用128 位(16 字节)块对数据进行加密和解密。

DES(数据加密标准)

DES算法是密码学中的一种对称密码系统,也称为美国数据加密标准。它是美国IBM于1972年开发的一种对称密码加密算法。明文按64位分组,密钥长度为64位。密钥实际上是参与DES运算的56位(第8、16、24、32、40、48、56、64位为校验位,使得每个密码的密钥都为奇数。 1)分组明文组将56位密钥逐位替换或交换,形成密文组的加密方法。

下图是它的加密过程:

imgDES 的密钥长度为56 位,这意味着加密时有256 个密钥可供选择,即72,057,594,037,927,936 种可能性。

DES不再是一种安全的加密方法,主要是因为它使用的56位密钥太短。该DES 破解器包含1,856 个定制芯片,可以在几天内破解DES 密钥- 此图显示了使用多个Deep Crack 芯片构建的DES 破解器

下图是专门用来破解DES加密的芯片:

img

AES(高级加密码标准)

AES 是一种分组密码。分组密码将明文分成几组,每组长度相等,每次加密一组数据,直到整个明文被加密。在AES标准规范中,数据包长度只能是128位,即每个数据包16字节(每字节8位)。密钥的长度可以是128位、192位或256位。密钥的长度不同,推荐的加密轮数也不同。

[图片上传失败.(image-baf2d4-1551780610742)]

例如,我们家中的无线路由器一般都采用AES加密。

img

AES算法流程

AES加密算法涉及4个操作:

字节替代行移位列混淆轮密钥加字节替换,如上所述。

我们可以将加密数据打散成一个4x4的表,然后对表中的每个空位置进行替换和移位,然后进行列混淆并添加密钥,重复上述步骤。

下图是:加解密流程图

img

字节代替

字节替换的主要作用是通过S盒完成一个字节到另一个字节的映射。 S盒的详细构造方法可以直接给出构造结果。 S盒用于提供密码算法的混淆。

使用两个替换表来显示良好的理解:

加密替换表:

img解密替换表:

img假设替换表x=0,y=0中可以加密:字节00000000B,替换后的值为(S[0][0]=)63H,则可以得到替换前的值x=6通过解密替换表,y=3,(S-1[6][3]=)00H。

行移位

行移位是4x4 矩阵内字节之间的排列,用于提供算法扩散。

行移点数为:

前移行

假设矩阵的名称为state,用公式表示:state[i][j]=state[i][(j+i)%4];其中i 和j 属于[0,3]。

反向行移位

用公式表示:state[i][j]=state[i][(4+j-i)%4];其中i 和j 属于[0,3]。

前向行移位: 前向行移位用于加密,其原理图如下。其中:第一行保持不变,第二行左移8位,第三行左移16位,第四行左移24位。

img 反向行移位: 反向行移位是相反的操作,即:第一行不变,第二行右移8 位,第三行右移16 位,第四行向右循环24 位。

列混淆

利用GF(28) 域中算术属性的替换,也用于提供算法的扩散。

还有:

正向列混淆img 反向列混淆img

对称加密思考

对称加密速度快,但安全性不如非对称加密。为什么?

密钥的交换需要建立在安全通信的基础上,而通信本身不可能绝对安全。加密和解密使用相同的密钥。如果信息泄露,密钥被提取,密文很容易被破解,无法验证和发送。或者,您可以使用相同的加密方法来伪造密文。这个时候,信息的来源就变得不可靠了。密钥每次使用都会被丢弃,需要重新生成密钥。如果要使用对称加密,那么共享信息的个人之间的关系每个人都需要共享这个密钥。例如,1000个人都使用同一个密钥进行密文传输。只要其中一人的密钥被盗,整个加密信息就会被破解。

那么方法是什么呢?这时可以引入另一种加密算法非对称加密

非对称加密

如何保证即使一个人的密钥被盗,至少可以保证你发给别人的密文不被破解?

简单来说, 每个人都会生成一个“私钥-公钥”对。这个私钥需要大家保护!公钥可以随意共享。同时,生成的“私钥-公钥”对还具有强大的功能。使用私钥加密的信息只能通过与私钥对应的公钥来解密。使用公钥加密信息只能通过公钥对应的私钥才能解密!

我们以上面的小明和小红为例:

小明生成了自己的“私钥-公钥”对,称为“小明私钥-小明公钥”,小红生成了自己的“小红私钥-小明公钥”对,我们之前说过私钥必须由每个人保管,而公钥可以随意共享。目的是什么?是为了加密信息!

拿到公钥和私钥后,小明在QQ群里对小红说:

img非对称解密算法即使有人截获也只知道公钥,但是如果想要解密使用公钥加密的密文!只有一个人可以做到!是小红!为什么?

小明用小红的公钥加密的信息只能用小红的公钥对应的私钥才能解密,这里就是“小红私钥”!因此,即使没有小红私钥的第三方立即截获这些密文,也无法破解!或者更严格地说,在有限的时间内,比如几十年,是很难进行暴力破解的!

我们来看看官方对非对称加密的解释

公钥加密也称为非对称加密,是密码学算法的一种。在这种密码学方法中,有一对密钥(其实这里的密钥不是一个好词,是“钥匙”),一个是私钥,另一个是公钥。这两个密钥在数学上是相关的,用用户的密钥加密后获得的信息只能用该用户的解密密钥来解密。如果你知道其中之一,就无法计算另一个。因此,如果一对密钥中的一个被公开,另一个密钥的秘密性质将不会受到损害。公钥称为公钥;私钥称为私钥。

你明白吗?有没有一种WFT的感觉?

img非对称加密需要包含:

Private Key 私钥Public Key 公钥下图是非对称加密解密过程图:

img的大致意思是,如果要使用非对称加密算法,首先必须有一对密钥,一个是private key私钥,另一个是public key公钥。然后你可以将你的公钥分发给想要给你发送密文的用户,然后用户用公钥加密的密文只能用你的私钥来解密。也就是说,只要你保管好自己的私钥,就可以保证别人要发给你的密文不会被破解。所以你不用担心别人的钥匙被偷。

小明使用小红给出的公钥对明文进行加密。小红用自己的私钥解密了密文。这种加密是单向的,因此称为非对称加密算法。

好吧,我们来总结一下非对称加密代码的特点

优缺点

优点: 允许在不安全的介质上交换信息。解密后的私钥不会发送给任何用户。即使密文泄露,也不用担心被破解,因为没有私钥来验证消息的发送者。缺点:加密速度较慢。该加密算法广泛应用于SSH、HTTPS、TLS、电子证书、电子签名、电子身份证等。

RSA 加密解密算法

我们举一个比较常用的算法:RSA加解密算法。

RSA加密算法是一种非对称加密算法,由三位牛人提出。 RSA是由下图中三个人姓氏的首字母组成。

img 我猜左边的两个比右边的聪明(看头发(ˉ︶ˉ))

公钥和私钥的产生

我们来看看生成公钥和私钥的四个步骤:

选择两个大素数p和i(大于10100),让n=pq和z=(p-1)(q-1)选择d和z的互质,选择e,使得e*d=1( mod z)( n,e) 是公钥,(n,d) 是私钥

将明文P分为k位块,k满足2k

互质关系

什么是互质关系?

如果两个正整数除了1 之外没有公因数,我们就说这两个数是互质的。例如,15和32没有公因数,因此它们互质。这表明即使是非质数也可以形成互质关系。

任意两个素数都形成互质关系,例如13和61。

如果一个数是质数,而另一个数不是前者的倍数,则两者形成互质关系,例如3和10。

如果两个数中较大的一个是质数,那么两者就形成互质关系,比如97和57。

1和任何自然数互质,例如1和99。

p是大于1的整数,则p和p-1形成互质关系,如57和56。

p是大于1的奇数,则p和p-2互质关系,如17和15。

欧拉函数

给定任意正整数n,小于或等于n的正整数中,与n互质的有多少个?

计算该值的方法称为欧拉函数,用(n) 表示。 1到8中,与8互质的有1、3、5、7,所以(n)=4。

如果n可以分解为两个互质整数的乘积:

n = p1 p2转:

(n) = (p1p2) = (p1)(p2)所以:

(56)=(87)=(8)(7)=46=24

加密消息

小明想给小红发消息M。他知道小红生成的公钥(n,e)。他使用与肖红约定的格式将M转换为小于n的整数m。例如,他可以将每个单词转换成该单词的Unicode代码,然后将这些数字连接在一起形成一个新的数字。如果他的消息很长,他可以将消息分成几个段落,然后将每个段落转换为m。利用下面的公式,他可以将m加密成c

加密公式:

img

解密消息

德隆收到海峰的消息c后,可以用自己的私钥d来解密。他可以使用下面的公式将c转换为m

解密公式:

img 假设:

p=3、q=11、n=33、z=20、d=7、e=3

C=P3(模33)

P=C7 (mod 33) 应用公式:

然后是img :

C=23(模33)=8(模33)=8

P=87(mod 33)=2097152(mod 33)=2z=(p-1)(q-1), n=pq, Mod 取余数,(n,e) 为公钥,(n,d ) 为私钥,设明文大P为2,2即为明文。 8是密文

小DEMO

参照上面的公式,我们写入一个非常非常非常非常简单的例子:的img,最终结果如下:

img的最大值是32,最小值是:1。明文不能超过p * q,所以p和q必须很大。

数字签名

RSA 的另一个最大优点是它在数字签名中的使用。数字签名的作用是确认消息来源的可靠性,保证信息的完整性和不可否认性。如果A想要公开发布自己的文件,A首先使用HASH算法生成该文件的消息摘要(或信息指纹),然后使用RSA加密算法(A的私钥)对摘要进行加密。如果用户想要下载A发布的文件,则需要同时下载该文件和摘要。下载完成后,用户使用A的公钥解密摘要,得到A之前生成的摘要,并且用户使用相同的HASH算法生成下载的文件A摘要,比较两个摘要是否相同平等的。如果它们相等,则可以确定两件事。文件已完成,该文件由A发布。

我们会从很多下载文件的网站上看到一些SHA256和MD5代码。用于验证文件,验证文件是否正式发布,是否被篡改。我们看golang.org官方源码包:

imgRSA 的算法安全性是基于大素数分解的难度。攻击者可以将已知的n分解得到p和q,然后得到z,最后利用Euclid算法从e和z得到d。

Openssl生成公私钥

我们可以在服务器上生成自己的公钥和私钥,服务器需要安装OpenSSL:

私钥:

img 下面是生成的公钥:

img

RSA的安全性

常见的RSA攻击方法有:

用户评论

此生一诺

终于找到一篇关于加解密的学习笔记了!

    有15位网友表示赞同!

烟雨萌萌

学习算法和原理是比较重要的一点啊。

    有20位网友表示赞同!

£烟消云散

感觉加解密越来越重要啦,希望能从笔记中学到一些实用的东西

    有15位网友表示赞同!

╭摇划花蜜的午后

不知道笔记里有没有介绍常见的加密算法,我刚开始学习!

    有20位网友表示赞同!

暮光薄凉

加密技术真是太复杂了,希望笔记能解释得通俗易懂。

    有16位网友表示赞同!

柠栀

有没有讲到最新的加解密技术?很想要了解一下科技发展的趋势。

    有15位网友表示赞同!

半梦半醒i

学习加解密可以用来保护我的个人信息,感觉很有必要!

    有8位网友表示赞同!

你很爱吃凉皮

加密学习笔记一定要分享给朋友!他最近也在学习相关知识。

    有13位网友表示赞同!

歆久

真希望笔记能涵盖很多方面的加密技术,让我更加全面地了解。

    有18位网友表示赞同!

傲世九天

看标题里似乎是关于学习加解密的笔记,感觉很棒!

    有16位网友表示赞同!

猫腻

现在信息安全越来越重要了,掌握加解密技术很重要哦!

    有12位网友表示赞同!

桃洛憬

学习加解密可以应用到实际工作中,对职业发展很有帮助!

    有10位网友表示赞同!

单身i

笔记写得怎么样呢?希望内容详细且易于理解!

    有17位网友表示赞同!

有些人,只适合好奇~

加密学习笔记分享在哪里能找到呢?

    有12位网友表示赞同!

青袂婉约

感兴趣于学习加解密的同学可以参考这篇笔记哦!

    有9位网友表示赞同!

呆萌

从标题看,笔记应该很有用,我决定阅读一下!

    有10位网友表示赞同!

人心叵测i

想知道笔记里有没有练习题,可以巩固学习效果。

    有5位网友表示赞同!

孤岛晴空

加密技术真是一个让人着迷的话题啊!

    有5位网友表示赞同!

发呆

笔记能帮助我更好地理解加解密的原理吗?

    有15位网友表示赞同!

【密码学基础教程:加密与解密学习心得分享】相关文章:

1.动物故事精选:寓教于乐的儿童故事宝库

2.《寓教于乐:精选动物故事助力儿童成长》

3.探索动物旅行的奇幻冒险:专为儿童打造的童话故事

4.《趣味动物刷牙小故事》

5.探索坚韧之旅:小蜗牛的勇敢冒险

6.传统风味烤小猪,美食探索之旅

7.探索奇幻故事:大熊的精彩篇章

8.狮子与猫咪的奇妙邂逅:一场跨界的友谊故事

9.揭秘情感的力量:如何影响我们的生活与决策

10.跨越两岸:探索彼此的独特世界

上一篇:女儿婚嫁,彩礼十六万,合理吗?探讨婚姻习俗与传统价值 下一篇:巧用双字秘诀,轻松化解难题