加密、签名、证书基本概念

1.非对称加密

非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。

公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。

因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。

工作原理

  • A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
  • A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
  • A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
  • A将这个消息发给B(已经用B的公钥加密消息)。
  • B收到这个消息后,B用自己的私钥解密A的消息。其他所有收到这个报文的人都无法解密,因为只有B才有B的私钥。

RSA算法

RSA加密算法是一种非对称加密算法

RSA是三位开发者姓氏开头字母拼在一起组成的。

2.对称加密

所谓对称,就是采用这种加密方法的双方使用方式同样的密钥进行加密和解密。

密钥是控制加密及解密过程的指令。

算法是一组规则,规定如何进行加密和解密。

优缺点

由于其速度快,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。

加密的安全性不仅取决于加密算法本身,密钥管理的安全性更是重要。因为加密和解密都使用同一个密钥,如何把密钥安全地传递到解密者手上就成了必须要解决的问题。

工作原理

  • 数据发送方将明文(原始数据)和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。
  • 接收方收到密文后,若想解读原文,则需要使用加密密钥及相同算法的逆算法对密文进行解密,才能使其恢复成可读明文。
  • 在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密。

AES

高级加密标准(英语:Advanced Encryption Standard,缩写:AES)

这个标准用来替代原先的DES

DES全称为Data Encryption Standard,即数据加密标准,是一种使用密钥加密的块算法

AES属于对称加密方法

3.密码散列函数

密码散列函数(Cryptographic hash function),又译为加密散列函数,是散列函数(哈希函数)的一种。

它被认为是一种单向函数,也就是说极其难以由散列函数输出的结果,回推输入的数据是什么。

这种散列函数的输入数据,通常被称为消息(message),而它的输出结果,经常被称为消息摘要(message digest)或摘要(digest)。

特点

  • 对于任何一个给定的消息,它都很容易就能运算出散列数值
  • 难以由一个已知的散列数值,去推算出原始的消息
  • 在不更动散列数值的前提下,修改消息内容是不可行的
  • 对于两个不同的消息,它不能给与相同的散列数值

MD5

MD5消息摘要算法(英语:MD5 Message-Digest Algorithm),一种被广泛使用的密码散列函数

可以产生出一个128位(16字节)的散列值(hash value),用于确保信息传输完整一致。

SHA家族

安全散列算法(英语:Secure Hash Algorithm,缩写为SHA)是一个密码散列函数家族,是FIPS所认证的安全散列算法。

能计算出一个数字消息所对应到的,长度固定的字符串(又称消息摘要)的算法。

家族成员

  • SHA家族的五个算法,分别是SHA-1、SHA-224、SHA-256、SHA-384,和SHA-512
  • SHA-1在许多安全协定中广为使用,包括TLS和SSL、PGP、SSH、S/MIME和IPsec
  • SHA-1的安全性如今被密码学家严重质疑;后四者有时并称为SHA-2,至今尚未出现对SHA-2有效的攻击

4.证书机制

  • 引入一个公正的第三方
  • 当某一方想要发布公钥时,它将自身的身份信息及公钥提交给这个第三方
  • 第三方对其身份进行证实,如果没有问题,则将其信息和公钥打包成为证书(Certificate)
  • 而这个公正的第三方,就是常说的证书颁发机构(Certificate Authority)
  • 当我们需要获取公钥时,只需要获得其证书,然后从中提取出公钥就可以了

解决问题:

通常情况下,获取外部平台的公钥时,除非对方手把手将公钥交给我们,否则公钥在网络中传递时,可能被篡改

5.数据安全传输条件

数据传输安全要满足的要求:

  • 消息的发送方能够确定消息只有预期的接收方可以解密(不保证第三方无法获得,但保证第三方无法解密)。
  • 消息的接收方可以确定消息是由谁发送的(消息的接收方可以确定消息的发送方)。
  • 消息的接收方可以确定消息在途中没有被篡改过(必须确认消息的完整性)。

如何实现?

假设有两组四个密钥

A的公钥(PUB_A),A的私钥(PRI_A);B的公钥(PUB_B),B的私钥(PRI_B)

公钥一般用来加密,私钥用来签名

A发送消息

  • 利用加密散列函数(SHA-2、MD5)对要发送的消息进行运算,单向生成消息摘要
  • A用自己的私钥(PRI_A)对消息摘要进行签名
  • A用B的公钥(PUB_B)对消息和签名后的消息摘要进行加密

B接受消息

  • B用自己的私钥(PRI_B)解密A用B的公钥(PUB_B)加密的内容
  • 解密后的内容分为两部分,一部分是消息,一部分是签名后的消息摘要
  • B用A的公钥(PUB_A)解签A用A自己私钥(PRI_A)签的签名
  • 对解密后的消息,进行加密散列函数运算,生成新的消息摘要,对比解签后的消息摘要,判断是否一致

非对称加密尽可能的保证了,消息在网络传输过程中,即使被截取,也无法被解密;

对消息摘要解签的过程,要用到发送方的公钥,这样也就确定了消息的发送方;

消息摘要的前后对比,保证了消息的完整性。

非对称加密是一种很耗时的操作,而对称加密效率虽然高,但不安全。

我们可以结合使用。

利用非对称加密,加密(签名)消息摘要和对称加密中的密钥;利用对称加密方式,加密消息数据

偷了一幅图:

加密流程.png

这篇博客写的很详细,图偷他的:

加密、签名和SSL握手机制细节https://www.cnblogs.com/f-ck-need-u/p/6089523.html

图中利用私钥,加密摘要信息生成数字签名,就是 签名 的过程。

参考

加密和签名的区别:https://blog.csdn.net/youshaoduo/article/details/78476578

签名、加密、证书的基本原理和理解:https://www.cnblogs.com/Caersi/p/6720789.html

加密、签名和SSL握手机制细节https://www.cnblogs.com/f-ck-need-u/p/6089523.html

还有一篇,关于前后端代码层面的,可以看一下:

前后端API交互如何保证数据安全性https://mp.weixin.qq.com/s?__biz=MzIwMDY0Nzk2Mw==&mid=2650319474&idx=1&sn=58d93748e1fce98a49378f611584dac2&chksm=8ef5fe06b982771076064fdca41117a5aadf782f7a2cecb7ca1b6208fadbe4103ade35bafdf7&scene=21#wechat_redirect

API数据加密框架monkey-api-encrypthttps://mp.weixin.qq.com/s?__biz=MzIwMDY0Nzk2Mw==&mid=2650319952&idx=1&sn=7cc80ab7ed6f3e1df48c23b245372ba8&chksm=8ef5f824b9827132f60d34dbe6915fe0528a2c56a8554b8f49ac797f372822d212f4f2a5f642&mpshare=1&scene=1&srcid=01163FLdZcK0cq47tY4ZG0Da&pass_ticket=Sn9gxTq46KCLz60J3Cs6MnKXjxGSsgKRe48Qz7idTxoU200Ohd5V420i5WMYpEWP#rd

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