当前位置:网站首页>密码学基础以及完整加密通讯过程解析
密码学基础以及完整加密通讯过程解析
2022-08-03 22:58:00 【灰奇同学】
密码学基础以及完整加密通讯过程解析
前言
密码学是研究如何隐密地传递信息的学科。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则,变明文为密文,称为加密变换;变密文为明文,称为脱密变换。
密码体系繁琐复杂,针对刚刚接触到密码学的同学,期望通过一篇文章能够理解到密码学体系内的基本概念以及完整的加密通讯过程。
一、密码学相关基本概念
密码体系的四大特性(目标)
- 保密性:保证数据不被泄露给非授权的实体。
- 完整性:保证数据没有受到非授权的篡改或破坏。
- 真实性:保证信息来源的可靠、没有被伪造和篡改。
- 不可否认性:也称抗抵赖性,指对一个已发生行为的无法否认性。
密码学相关基本概念名词解释
- 明文:是指没有加密的文字(或者字符串);
- 密文:通过算法以及密钥进行加密后的文字(或者字符串),密文没有实际意义,解密后获得明文;
- 算法:可以理解为密码体系中的锁,亦可可理解为公式(规则),循柯克霍夫原则(下图出至于CISSP教材,侵删),目前大多数密码算法是公开但相对安全的,;
- 密钥:密码体系中的钥匙,算法+密钥才能得到明文/密文。
二、对称加密
使用同一个密钥进行加解密过程。
优点
运算速度快缺点
密钥数量大,每对通信者间都需要一个不同的密钥,N个人通信需要N*(N-1)/2个密钥
如何安全的分发共享密钥是难点
无法实现身份认证典型算法
国际对称算法:DES、3DES、 AES等
国内对称算法:SM1(国密)、SM4 (国密)、 SM7(国密) 、ZUC(国密)
三、非对称加密
非对称加密分为公钥与私钥。可使用公钥加密、私钥解密,亦可使用私钥加密、公钥解密(数字签名,保障真实性、不可否认性)。
优点
密钥分发简单,N人通信需要2N个密钥。缺点
加解密速度远低于对称密钥算法
加密后的数据大小比原文大很多,效率低
不适合大量数据的加解密典型算法
国际非对称算法:RSA密码算法、ECC算法
国内非对称算法:SM2(国密)
四、杂凑算法
- 杂凑算法:对任意长度的消息进行压缩,输出定长的信息摘要或杂凑值
特性。对任何长度的信息进行哈希后,结果都是一个固定长度的数据摘要,如128 bits或160 bits。
原始信息中任何一个字节的改变,都会导致摘要后的结果发生变化不可逆。为一个给定的输出,找出能映射到该输出的一个输入,在计算上是不可行的 - 作用:用于鉴别原始信息是否被篡改
- 常用算法
国际杂凑算法:MD5、SHA-1
国内杂凑算法:SM3(国密)
五、完整加密通讯过程
信息发送方A在传输中的动作
- 1.使用对称算法加密明文,得到密钥(明文)以及密文;
- 2.使用杂凑算法,得到摘要值并且使用A的私钥加密,得到数字签名;
- 3.使用B的公钥加密1过程中得到的密钥(密文);
信息接收方B在传输中的动作
- 4.B使用B的私钥解密3过程得到的的密钥(密文),得到密钥(明文);
- 5.使用4过程得到的密钥(明文)解密密文;
- 6.使用A的公钥解密数字签名,再使用杂凑算法计算所得明文摘要确定两份摘要是否一致;
1.3.4.5过程保障了密码体系中的保密性
2.6过程保障了密码体系中的完整性、真实性、不可否认性
至此,完整的传输过程结束。
边栏推荐
- Interpretation of ML: A case of global interpretation/local interpretation of EBC model interpretability based on titanic titanic rescued binary prediction data set using interpret
- Testng监听器
- Network basic learning series four (network layer, data link layer and some other important protocols or technologies)
- Pytest学习-setup/teardown
- Teach a Man How to Fish - How to Query the Properties of Any SAP UI5 Control by Yourself Documentation and Technical Implementation Details Demo
- 使用tf.image.resize() 和tf.image.resize_with_pad()调整图像大小
- Zilliz 2023 秋季校园招聘正式启动!
- With the rise of concepts such as metaverse and web3.0, many digital forms such as digital people and digital scenes have begun to appear.
- Conditional Statements for Shell Programming
- win10系统下yolov5-V6.1版本的tensorrt部署细节教程及bug修改
猜你喜欢
On the Qixi Festival of 2022, I will offer 7 exquisite confession codes, and at the same time teach you to quickly change the source code for your own use
Live Preview | Build Business Intelligence, Quickly Embrace Financial Digital Transformation
关于IDO预售系统开发技术讲解丨浅谈IDO预售合约系统开发原理分析
SPOJ 2774 Longest Common Substring(两串求公共子串 SAM)
Click the icon in Canvas App to generate PDF and save it to Dataverse
complete binary tree problem
encapsulation, package, access modifier, static variable
Canvas App中点击图标生成PDF并保存到Dataverse中
Boss: There are too many systems in the company, can you realize account interoperability?
What is the difference between the generator version and the viewer version?
随机推荐
UVa 1025 - A Spy in the Metro (White Book)
Recognized by International Authorities | Yunzhuang Technology was selected in "RPA Global Market Pattern Report, Q3 2022"
[MySQL Advanced] Creation and Management of Databases and Tables
Canvas App中点击图标生成PDF并保存到Dataverse中
UVa 437 - The Tower of Babylon (White Book)
【day6】类与对象、封装、构造方法
Republish the lab report
物联网新零售模式,引领购物新潮流
获国际权威认可 | 云扩科技入选《RPA全球市场格局报告,Q3 2022》
SPOJ 2774 Longest Common Substring(两串求公共子串 SAM)
encapsulation, package, access modifier, static variable
pikachu Over permission
Interpretation of ML: A case of global interpretation/local interpretation of EBC model interpretability based on titanic titanic rescued binary prediction data set using interpret
Golang第二章:程序结构
node连接mysql数据库报错:Client does not support authentication protocol requested by server
What is Adobe?
start with connect by implements recursive query
Binary search tree to solve the fallen leaves problem
OPC UA 与IEC61499 深度融合(1)
MiniAPI of .NET6 (14): Cross-domain CORS (Part 1)