一篇文章搞定密码学基础

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

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

基本概念

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

密码系统

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

密码系统.PNG

密码体制

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

对称密码体制.PNG

安全性依赖于:1、加密算法的安全性 2、密钥的秘密性
优点:算法公开、速度快、保密强度高、占用空间小
缺点:密钥的分发和管理非常复杂
用途:信息量大的加密
代表算法:DES算法、3DES算法、IDEA算法、AES算法
问题:若接收方伪造一个消息并诬陷是发送方发送的,发送方无法辩解,也就是无法解决消息的确认问题,不能实现数字签名;另一个问题是建立安全的信道之前,如何实现通信双方的加密密钥的交换

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

非对称密码体制.PNG

优点:通信双方不需要通过建立一个安全信道来进行密钥的交换,密钥空间小,降低了密钥管理的难度
缺点:实现速度慢,不适合通信负荷较重的情况
用途:加密关键性的、核心的机密数据
代表算法:RSA算法、ElGamal算法、椭圆曲线加密算法
问题:由于自己的公钥对外公开,因此
1、如果一个人用自己的公钥加密数据发送给我,我无法断定是谁发送的;
2、我用私钥加密的数据,任何知道我公钥的人都能解密我的数据。

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

1、A找到B的公钥
2、A选择一个大随机数作为此次会话的加密密钥,即会话密钥
3、A以会话密钥加密通信内容,再以B的公钥加密会话密钥后发送给B
4、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、接收方比较两个消息摘要,如果完全一致,说明数据没有被篡改,签名真实有效;否则拒绝该签名。

数字签名.png

如果通信的内容是加密的,就需要采用数字信封:发送方用对称密钥加密明文,然后用对方的公钥加密对称密钥发送给对方,对方收到电子信封,用自己的私钥解密,得到对称密钥解密,还原明文。此时数字签名的过程如下:

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的数字签名、可选型等等

X.509 V3.PNG
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 199,393评论 5 467
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 83,790评论 2 376
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 146,391评论 0 330
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 53,703评论 1 270
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,613评论 5 359
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,003评论 1 275
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,507评论 3 390
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,158评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,300评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,256评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,274评论 1 328
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,984评论 3 316
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,569评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,662评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,899评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,268评论 2 345
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 41,840评论 2 339

推荐阅读更多精彩内容

  • 密码学思维导图 密码学基本认知 密码学是科学; 密码学理论是公开的,因此,不要使用保密的密码算法; 密码学算法是相...
    独木舟的木阅读 4,669评论 0 2
  • 加密与解密 对称密码体制的保密性主要取决于密钥的保密性,与算法的保密性无关 非对称加密算法与对称加密算法的区别: ...
    peerless_1024阅读 1,879评论 0 0
  • 前言 本文梳理主要基于书籍《Java加密与解密的艺术》、维基百科、百度百科以及网络上众多资料,如有涉及版权问题,请...
    hello_cyz阅读 2,095评论 1 7
  • 1 公钥私钥 2 公钥加密 别人用A的公钥加密传输的信息,只有A的私钥可以解密。保证了传输的信息的安全性。 2 私...
    skykira阅读 940评论 0 1
  • 〇、序言 货币由于其天然属性决定了其与安全不可分割的联系,从最早的金库、保险柜、镖局到后来的ATM机、运钞车;从存...
    怒马2048阅读 38,623评论 4 79