密码技术是网络安全的基础,也是核心。如今对隐私保护、敏感信息尤其重视,因而不论是系统研发还是App研发,只需有网络通信,好多信息都需要进行加密,以防止被截取篡改,虽然好多人每天都在用密码学的知识,但并不是都晓得,谨以此篇科普一下基本概念。
明文M:原始数据,待加密的数据密文C:对明文进行某种假装或变更后的输出密钥K:加密或解密中所运用的专门工具加密E:用某种办法将明文变成密文的流程解密D:将密文恢复成明文的流程。
密码系统的密码体制
对称密码体制:对信息进行明/密文变更时,加解和解密运用相同密钥的密码体制。
对称密码体制
安全性依赖于:1、加密算法的安全性 2、密钥的秘密性长处:算法公开、速度快、保密强度高、占用空间小缺陷:密钥的分发和管理十分复杂用处:信息量大的加密代表算法:DES算法、3DES算法、IDEA算法、AES算法问题:若接纳方伪造一个消息并诬害是发送方发送的,发送方无法辩解,也便是无法处理消息确实认问题,不能够实现数字签名;另一个问题是建立安全的信道之前,怎样实现通信双方的加密密钥的交换
非对称密码体制:对信息进行明/密文变更时,加密和解密密钥不相同的密码体制在非对称密码体制中,每个用户都具有一对密钥,一个用于加密,一个用于解密,此中加密密钥能够公开,称之为公钥,解密密钥属于秘密,称之为私钥,只要用户一人晓得。
非对称密码体制
长处:通信双方不需要通过建立一个安全信道来进行密钥的交换,密钥空间小,降低了密钥管理的难度缺陷:实现速度慢,不合适通信负荷较重的情况用处:加密关键性的、核心的秘密数据代表算法:RSA算法、ElGamal算法、椭圆曲线加密算法问题:由于本人的公钥对外公开,因而1、假如一个人用本人的公钥加密数据发送给我,我无法判定是谁发送的;2、我用私钥加密的数据,任何晓得我公钥的人都能解密我的数据。
混淆加密体制:同时运用对称密码和非对称密码的体制对称加密的一个很大问题便是通信双方怎样将密钥传输给对方,为了安全,普通采纳带外传输,也便是说假如加密通信是在网络,那么密钥的传输需要通过其他途径,如短信,即便如此,也很难保证密钥传输的安全性。非对称加密加解最大的长处是事前不需要传输密钥,但速度慢,因而实际使用中,经常采纳混淆密码体制。假定A与B要实现保密通信,工作流程如下:
1、A找到B的公钥2、A选择一个大随机数作为这次会话的加密密钥,即会话密钥3、A以会话密钥加密通信内容,再以B的公钥加密会话密钥后发送给B4、B收到数据往后,先用本人的私钥解密出会话密钥,然后用会话密钥解密出通信内容
散列函数与消息摘录
Hash函数也称为散列函数,它可以对差别长度的输入信息,产生固定长度的输出。这种固定长度的输出称之为原消息的散列或许消息摘录,消息摘录长度固定且比原始信息小得多,普通情况下,消息摘录是不行逆的,即从消息摘录无法复原原文,为什么说普通情况下呢,中国出了个牛人王小云,感兴趣的自行Google
散列算法:散列算法便是产生信息散列值的算法,它有一个特性,便是在输入信息中假如发生细微的改动,比如给变了二进制的一位,都能够改动散列值中每个比特的特性,导致最后的输出结果大相径庭,因而它关于检测消息或许密钥等信息对象中的任何微小的变化十分有效。
一个安全的散列算法H需要满意:
1、输入长度是随意的,输出是固定的2、对每一个给定的输入,计算输出是很容易的3、给定H,找到两个差别的输入,输出统一个值在计算上不行行4、给定H和一个消息x,找到另一个差别的消息y,使它们散列到统一个值在计算上不行行多见的散列算法:MD2、MD4、MD5、SHA、SHA-1
数字签名
数字签名是指发送方以电子方式签名一个消息或文件,签名后的消息或文件能在网络中传输,并表示签名人对该消息或文件的内容负有责任。数字签名综合运用了消息摘录和非对称加密技术,能够保证承受者可以核实发送者对报文的签名,发送者事后不抵赖报文的签名,承受者不能够篡改报文内容和伪造对报文的签名。
数字签名需要做到两点:
1、确认信息是由签名者发送的;2、确认信息从签发到承受没有被修改正。
数字签名的流程
1、发送方要发送消息运用散列函数(MD5、SHA-1等)构成消息摘录;2、发送方用本人的私钥抵消息摘录进行加密,构成数字签名;3、发送方将数字签名附加在消息后发送给接纳方;4、承受方用发送方的公钥对签名信息进行解密,得到消息摘录;5、接纳方以相同的散列函数对接纳到的消息进行散列,也得到一份消息摘录;、6、接纳方比较两个消息摘录,假如完全一致,阐明数据没有被篡改,签名真实有效;不然回绝该签名。
假如通信的内容是加密的,就需要采纳数字信封:发送方用对称密钥加密明文,然后用对方的公钥加密对称密钥发送给对方,对方收到电子信封,用本人的私钥解密,得到对称密钥解密,复原明文。此时数字签名的流程如下:
1、发送方要发送消息运用散列函数(MD5、SHA-1等)构成消息摘录;2、发送方用本人的私钥抵消息摘录进行加密,构成数字签名;3、发送方用对称加密算法抵消息原文、数字签名进行加密,得到密文信息;4、发送方用接纳方的公钥加密对称加密算法的密钥进行加密,构成数字信封;5、发送方将3中的密文信息和数字信封一同发给接纳方;6、接纳方首先用本人的私钥解密数字信封,复原对称加密算法的密钥;7、承受方用6中的密钥解密接纳到的密文,得到原文信息和数字签名;8、承受方用发送方的公钥对签名信息进行解密,得到消息摘录;9、接纳方以相同的散列函数对接纳到的消息进行散列,也得到一份消息摘录;10、接纳方比较两个消息摘录,假如完全一致,阐明数据没有被篡改,签名真实有效;不然回绝该签名。
数字证书
数字证书是一种威望的电子文档,由威望公正的第三方认证机构(CA)签发,普遍用于触及需要身份认证和数据安全的范畴。
数字证书种类:
1、服务器证书:证明服务器的身份和进行通信加密,客户端能够与服务器端建立SSL衔接,然后通信数据都会被加密。2、电子邮件证书:证明电子邮件发件人的真实性,也可发送加密邮件,只要接纳方才能打得开。3、客户端证书:主要用于身份验证和数字签名,安全的客户端证书经常存储的专门的USBKey中,运用的时候需要输入保护密码,以防被导出和复制,如指纹识别、语音播报、带显示器的USBKey等等。
数字证书功用:1、信息保密2、身份确认3、不行否认性4、数据完整性
数字证书的格式:最简单的能够是:公钥、名称和证书授权中心的数字签名,现在 X.509 是一种通用的证书格式,它的第三个版本现在运用普遍,证书内容包括:版本、序列号、签名算法标记、签发者、有效期、主体、主体公开密钥、CA的数字签名、可选型等等。