一篇文章搞定密码学基础

如题所述

第1个回答  2022-06-10

密码技术是网络安全的基础,也是核心。现在对隐私保护、敏感信息尤其重视,所以不论是系统开发还是App开发,只要有网络通信,很多信息都需要进行加密,以防止被截取篡改,虽然很多人每天都在用密码学的知识,但并不是人人都知道,谨以此篇科普一下~~~

PS:2016.7.10 补充 散列函数与消息摘要

明文M:原始数据,待加密的数据
密文C:对明文进行某种伪装或变换后的输出
密钥K:加密或解密中所使用的专门工具
加密E:用某种方法将明文变成密文的过程
解密D:将密文恢复成明文的过程

一个密码系统由五元组(M、C、K、E、D)组成,如图所示

对称密码体制 :对信息进行明/密文变换时,加解和解密使用相同密钥的密码体制

非对称密码体制 :对信息进行明/密文变换时,加密和解密密钥不相同的密码体制
在非对称密码体制中,每个用户都具有一对密钥,一个用于加密,一个用于解密,其中加密密钥可以公开,称之为公钥,解密密钥属于秘密,称之为私钥,只有用户一人知道。

混合加密体制 :同时使用对称密码和非对称密码的体制
对称加密的一个很大问题就是通信双方如何将密钥传输给对方,为了安全,一般采取带外传输,也就是说如果加密通信是在网络,那么密钥的传输需要通过其他途径,如短信,即使如此,也很难保证密钥传输的安全性。非对称加密加解最大的优点是事先不需要传输密钥,但速度慢,因此实际应用中,经常采取混合密码体制。假设A与B要实现保密通信,工作过程如下:

Hash函数也称为 散列函数 ,它能够对不同长度的输入信息,产生固定长度的输出。这种固定长度的输出称之为原消息的散列或者 消息摘要 ,消息摘要长度固定且比原始信息小得多,一般情况下,消息摘要是不可逆的,即从消息摘要无法还原原文,为什么说一般情况下呢,中国出了个牛人王小云,感兴趣的自行Google~~~

散列算法:散列算法就是产生信息散列值的算法,它有一个特性,就是在输入信息中如果发生细微的改变,比如给变了二进制的一位,都可以改变散列值中每个比特的特性,导致最后的输出结果大相径庭,所以它对于检测消息或者密钥等信息对象中的任何微小的变化非常有用。

一个安全的散列算法H需要满足:

数字签名是指发送方以电子形式签名一个消息或文件,签名后的消息或文件能在网络中传输,并表示签名人对该消息或文件的内容负有责任。数字签名综合使用了消息摘要和非对称加密技术,可以保证接受者能够核实发送者对报文的签名,发送者事后不抵赖报文的签名,接受者不能篡改报文内容和伪造对报文的签名。

数字签名需要做到两点:

数字签名的过程与示意图:

数字证书是一种权威的电子文档,由权威公正的第三方认证机构(CA)签发,广泛用于涉及需要身份认证和数据安全的领域。

数字证书种类:

数字证书功能:
1、信息保密
2、身份确认
3、不可否认性
4、数据完整性

数字证书的格式:
最简单的可以是:公钥、名称和证书授权中心的数字签名,目前 X.509 是一种通用的证书格式,它的第三个版本目前使用广泛,证书内容包括:版本、序列号、签名算法标识、签发者、有效期、主体、主体公开密钥、CA的数字签名、可选型等等

相似回答