首页 > 其他分享 >密码学基础概念

密码学基础概念

时间:2023-02-28 10:55:05浏览次数:42  
标签:公钥 加密 基础 解密 概念 算法 密钥 私钥 密码学

把一段原始数据通过某种算法处理成另外一种数据(原始数据为明文,处理后的数据为密文)。明文->密文:称之为加密。密文->明文:称之为解密。

图1

在加密过程中我们需要知道下面的这些概念:

1)明文:就是被隐藏的文字,图1中的“你好”就是明文。

2)算法:指隐藏原文的法则。对于加密、解密来讲,算法是非常关键。公知度高的算法都是公开的,一旦有人想要破解算法,而且能够被破解了,则所有使用这个算法的产品都面临要报废、被盗版的危机。而且很多的时候做过开发的人就知道,替换一个算法的成本很大。因此一个加密出来的数据本身可靠与否,取决于密钥,而不是算法,因为密钥的调换成本比较低。

3)密文:指对原文按照加密法处理过后生成的可公开传递的文字。图1中的“bmloYW8=”就是密文。

4)密钥:在加密法中起决定性因素的一种参数,它是在明文->密文或密文->明文的算法中输入的数据。可能是数字、词汇,也可能是一些字母,或者这些东西的组合。

5)对称加密:发送方和接收方使用同一个密钥去加密解密数据。优势是加解密速度快适合于对大数据进行加密,但是密钥管理困难。例如:DES、AES、SM1、SM4、SM7算法等。

6)非对称加密:需要使用不同的密钥来分别完成加密和解密操作。其中一个密钥公开发布,即为公钥。另一个由用户自己秘密保存,即为私钥。发送方用对方的公钥加密数据,对方用自己的私钥解密数据。缺点在于加密解密的速度比对称密钥慢很多。例如:RSA、SM2。

7)摘要算法:哈希算法(Hash)又称摘要算法(Digest),它的作用是:对任意一组输入数据进行计算,得到一个固定长度的输出摘要。哈希函数的主要作用不是完成数据加密与解密工作,它是用来检验数据完整性的重要技术,运算结果具有不可逆性。

对称算法

对称算法,整个加密解密过程中只使用一个密钥。所谓对称其实就是使用一把密钥加密,使用同一把密钥解密。对称加密由于加解和解密使用的是同一个密钥算法,故而在加解密的过程中速度比较快,适合于数据量比较大的加解密。

对称加密的主要有优点就是算法公开、计算量小、加密速度快、加密效率高;但是它也存在明显的缺点,缺点就是密钥协商过程中,一旦密钥泄露,别人可以获取到密钥,这样也能对密文进行解密。另外,每对用户每次使用对称加密算法时,都需要使用其他人不知道的独一密钥,这会使得收、发双方所拥有的钥匙数量巨大,密钥管理成为双方的负担。

常用的对称加密算法有: 

DES、3DES、AES、TDEA、Blowfish、RC2、RC4、SM1、SM4、SM7和RC5等。 

图2

非对称算法

非对称加密算法中加密和解密用的不是同一个密钥,所以叫作非对称加密算法。非对称加密算法需要两个密钥:公开密钥(publickey:简称公钥)和私有密钥(privatekey:简称私钥)。公钥与私钥是一对。公钥是对外发布的,所有人都看的到所有人的公钥,私钥是自己保存,每个人都只知道自己的私钥而不知道别人的。接下来我们解释一下非对称加密算法中有加密和解密、加签和验签的概念。常用的非对称加密算法有: RSA、ECC、SM2等。 

加密和解密

图3

如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

以图3为例,首先A发了一条信息给B“你好”。这条信息A会根据B对外发布的公钥把这条信息加密了,加密之后,变成“XXXXXXX”发给B。假如中间被第三者截获,由于没有B的私钥无法解密,不能知道信息的含义,也无法按正确的方式篡改。所以拿这条加密信息是没办法读取到明文信息。最后被B接受,B用自己的私钥去解密这条信息,解密成功,读取内容,执行操作。然后得知消息是A发来的,便去拿A的公钥,把“操作成功(或失败)”这条信息加密,发给A。同理最后A用自己的私钥解开,得知B发来的信息内容。其他人截获因为没有A的私钥所以也没有用。

签名和验签

签名验签的目的是向接收方证明发送方的身份和校验数据完整性,防止接收方得到的是第三方篡改的数据或不完整的数据。

  签名: 发送方对发送的数据用hash计算一个摘要(校验码)和原文组成一个明文的签名,再用私钥对明文签名加密 (公钥和私钥可以互相作为同一段数据加解密的密钥)。

验签: 接收方用公开的公钥解密并用相同hash算法计算摘要,对比计算摘要和接收摘要。

图4

举例:小明给小丽发送消息,小明先计算出消息的摘要,然后使用自己的私钥加密消息摘要,被加密的消息摘要就是签名。 

小丽收到消息后,也会使用和小明相同的方法提取消息摘要,然后用小明的公钥解密签名,并与自己计算出来的消息摘要进行比较(这个过程,叫做"验签")。如果相同则说明消息是小明发送给小丽的。同时,小明也无法否认自己发送消息给小丽的事实。

 

标签:公钥,加密,基础,解密,概念,算法,密钥,私钥,密码学
From: https://www.cnblogs.com/liaqi333/p/17163212.html

相关文章

  • 基础Java学习笔记(一)
    学习笔记01两年前学的Java,现在已经忘得差不多了,跟着狂神说Java的视频从头开始学,希望能救一救ww一、JDKJREJVM1.JDKjavadevelopmentkit2.JREjavaRuntimeEnvir......
  • 吐血整理!2万字Java基础面试题(带答案)请收好!
    熬夜整理了这么多年来的Java基础面试题,欢迎学习收藏,手机上可以点击这里,效果更佳https://mp.weixin.qq.com/s/ncbEQqQdJo0UaogQSgA0bQ1.1Hashmap与concurrentHashMap......
  • Pandas - 两种基础数据结构 Series + DataFrame
      Series是带有标签的一维数组,把list和dict的优点结合常见的三种构造方式: ......
  • 第一章-概念
    1.1操作系统的概念:1.1.1什么是操作系统:控制和管理整个计算机系统的硬件和软件资源合理地组织调度计算机的工作和资源的分配提供给用户和其他软件方便的接口和环......
  • 模块与前端基础
    CommonJS模块的特点1、对于基本数据类型,属于复制。即会被模块缓存,如果在另外一个模块导入相同的变量也可以对该变量进行赋值。2、对于复杂数据类型,是浅拷贝。由于两个模......
  • DQL基础查询/条件查询
    基础查询:selectname,agefromstu; --查两列select * from stu;--查全部,不推荐selectdistinctaddressfromstu;--......
  • html5和css3基础学习笔记
    网页简介一个页面包括结构、表现、行为三个部分。结构:HTML用于描述页面的结构。表现:CSS用于控制页面中元素的样式。行为:JavaScript用于响应用户操作。......
  • 《信息安全数学基础》第一章:整除与同余——知识点梳理
    整除(easy)整除定义若\(\foralla,b\inZ,b\ne0,\existsq\inZ.\s.t.\a=qb.\)则称:\(b\)整除\(a\),或\(a\)被\(b\)整除,记为:\(b\mida\)\(b\)不整除\(a\):\(......
  • 数据结构学习随笔chapter1_基础
    这是在学习浙大陈越老师数据结构课程的时候做的笔记,第一次写博客,希望坚持下去!刚开始可能笔记记的比较笨,以后慢慢就精炼一点。看起来陈老师是用c写的,我想用java来写,但是java......
  • Gslb基础概念和原理
    GSLB基础概念和原理简概采用全局负载均衡(GSLB)的前提是在不同地区设立了多个数据中心,并不是所有的互联网服务都能做GSLB,前提是业务已经做了分布式部署的规划,无论用户从哪......