摘要算法

https数字证书基础概念(一)

空扰寡人 提交于 2020-01-13 05:25:22
基础概念 密钥 公钥密码体制 对称加密算法 非对称加密算法 CA 数字证书 摘要 摘要算法 数字签名 参考资料 后记 密钥 密钥,一般是一个字符串或数字,在加密或解密时传递给加密或解密算法 。下面公钥密码体制中提到的公钥和私钥都是密钥,只是公钥是加密时使用的密钥,私钥是解密时使用的密钥。 公钥密码体制 公钥密码体制(public-key cryptography)由公钥、私钥、加密算法三部分组成, 其中由公钥加密的内容只能由私钥解密 ,也就是说除了私钥之外,由公钥加密的内容无法被解密。公钥密码体制的加解密过程如下: 加密 :使用 加密算法 和 公钥 对明文进行加密,得到密文。 解密:使用 解密算法 和 私钥 对密文进行解密,得到明文。 公钥密码体制的公钥和算法都是公开的,只有私钥是保密的 。所以在实际使用中,都是生成一对公钥和私钥,把公钥发布出去,自己保留私钥。 对称加密算法 在对称加密算法(symmetric key algorithms)中,加密和解密时使用的密钥是相同的 。在安全通信之前,会要求通信双方商定一个密钥,泄漏密钥就意味着任何人都可以对发送或接收的消息解密;因此对称加密算法要保证安全性的话,密钥只能让使用的人知道,不能对外公开。 对称加密算法的特点: 算法公开、计算量小、加密速度快、加密效率高 。 非对称加密算法 在非对称加密算法(asymmetric key

HTTPS为什么更安全,先看这些 , 网络加密 , 加密解密

跟風遠走 提交于 2020-01-13 02:48:43
投递人 itwriter 发布于 2017-02-27 21:35 评论(10) 有1957人阅读 原文链接 [收藏] « »   HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合。理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、信息摘要、数字签名、数字证书。接下来我会逐个解释这些术语,文章里面提到的『数据』、『消息』都是同一个概念,表示用户之间通信的内容载体,此外文章中提到了以下几个角色: Alice:消息发送者 Bob:消息接收者 Attacker:中间攻击者 Trent:第三方认证机构 密码   密码学中的“密码”术语与网站登录时用的密码(password)是不一样的概念,password 翻译过来其实是“口令”,它是用于认证用途的一组文本字符串。   而密码学中的密码(cipher)是一套算法(algorithm),这套算法用于对消息进行加密和解密,从明文到密文的过程称之为加密,密文反过来生成明文称之为解密,加密算法与解密算法合在一起称为密码算法。 密钥   密钥(key)是在使用密码算法过程中输入的一段参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长

HTTPS 为什么更安全,先看这些

安稳与你 提交于 2020-01-13 02:47:52
HTTPS 是建立在密码学基础之上的一种安全通信协议,严格来说是基于 HTTP 协议和 SSL/TLS 的组合。理解 HTTPS 之前有必要弄清楚一些密码学的相关基础概念,比如:明文、密文、密码、密钥、对称加密、非对称加密、信息摘要、数字签名、数字证书。接下来我会逐个解释这些术语,文章里面提到的『数据』、『消息』都是同一个概念,表示用户之间通信的内容载体,此外文章中提到了以下几个角色: Alice:消息发送者 Bob:消息接收者 Attacker:中间攻击者 Trent:第三方认证机构 密码 密码学中的“密码”术语与网站登录时用的密码(password)是不一样的概念,password 翻译过来其实是“口令”,它是用于认证用途的一组文本字符串。 而密码学中的密码(cipher)是一套算法(algorithm),这套算法用于对消息进行加密和解密,从明文到密文的过程称之为加密,密文反过来生成明文称之为解密,加密算法与解密算法合在一起称为密码算法。 密钥 密钥(key)是在使用密码算法过程中输入的一段参数。同一个明文在相同的密码算法和不同的密钥计算下会产生不同的密文。很多知名的密码算法都是公开的,密钥才是决定密文是否安全的重要参数,通常密钥越长,破解的难度越大,比如一个8位的密钥最多有256种情况,使用穷举法,能非常轻易的破解。根据密钥的使用方法,密码可分为对称加密和公钥加密。 对称加密

Node之加密与解密处理

[亡魂溺海] 提交于 2020-01-11 15:06:32
crypto模块概述 在Node.js中,使用OpenSSL类库作为其内部实现加密与解密处理的基础手段,这是因为目前OpenSSL已经成为了一个经过严格测试的可靠的加密与解密算法的实现工具。 在Node.js中,OpenSSL类库被封装在crypto模块中,因此开发者可以使用crypto模块来实现各种不同的加密与解密处理。例如,crypto模块中包含了类似MD5或SHA-1之类的散列算法。开发者也可以通过crypto模块来实现HMAC运算 [1]。在crypto模块中,提供了一些加密方法来实现数据的可靠加密。另外,在crypto模块中,也提供了一些利用HMAC运算来实现数字签名以及对数字签名进行验证的方 法。 查看Node.js中能够使用的所有加密算法 在crypto模块中,为每一种加密算法定义了一个类。可以使用getCiphers方法 来查看Node.js中能够使用的所有加密算法。 crypto.getCiphers() 查看Node.js中能够使用的所有散列算法 可以使用getHashes方法来查看在Node.js中能够使用的所有散列算法。 crypto.getHashes() 散列算法 散列(哈希)算法用来实现一些重要处理,例如,在允许对一段数据进行验证的前提下,将数据进行模糊化,或者为一大段数据提供一个验证码 在node中,为了使用散列算法

Java实现数字签名

半城伤御伤魂 提交于 2020-01-02 15:53:22
、数字签名算法概述 签名认证是对非对称加密技术与数字摘要技术的综合运用,指的是将通信内容的摘要信息使用发送者的私钥进行加密,然后将密文与原文一起传输给信息的接收者,接收者通过发送者的公钥信息来解密被加密的摘要作息,然后使用与发送者相同的摘要算法,对接收到的内容采用相同的方式方式产生摘要串,与解密的摘要串进行对比,如果相同,则说明接收到的内容是完整的,在传输过程中没有受到第三方的篡改,否则说明通信内容已被第三方修改。 我们知道,每个人都有其特有的私钥,且都是对外界保密的,而通过私钥加密的信息,只能通过其对应的公钥来进行解密。因此,私钥可以代表私钥持有者的身份,可以通过私钥对应的公钥来对私钥拥有者的身份进行校验。通过数字签名,能够确认消息是消息发送方签名并发送过来的,因为其他人根本假冒不了消息发送方的签名,他们没有消息发送者的私钥。而不同的内容,摘要信息千差万别,通过数字摘要算法,可以确保传输内容的完整性,如果传输内容在中途被篡改了,对应的数字签名的值也将发生改变。 数字签名:带有密钥(公钥,私钥)的消息摘要算法。私钥用于签名,公钥用于验证。 数字签名的作用: 验证数据的完整性,认证数据来源,抗否认。 数字签名实现的具体原理: 1、 将报文按双方约定的HASH算法计算得到一个固定位数的报文摘要。在数学上保证,只要改动报文中任何一位,重新计算出的报文摘要值就会与原先的值不相符

常用消息摘要算法介绍

a 夏天 提交于 2020-01-02 09:04:50
消息摘要算法 介绍: 数据摘要算法是密码学算法中非常重要的一个分支,它通过对所有数据提取指纹信息以实现数据签名、数据完整性校验等功能,由于其不可逆性,有时候会被用做敏感信息的加密。数据摘要算法也被称为哈希(Hash)算法或散列算法。 消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。(摘要可以比方为指纹,消息摘要算法就是要得到文件的唯一职位) 特点: 无论输入的消息有多长,计算出来的消息摘要的长度总是固定的。 一般地,只要输入的消息不同,对其进行摘要以后产生的摘要消息也必不相同;但相同的输入必会产生相同的输出。 只能进行正向的信息摘要,而无法从摘要中恢复出任何的消息,甚至根本就找不到任何与原信息相关的信息(不可逆性)。 好的摘要算法,没有人能从中找到“碰撞”或者说极度难找到,虽然“碰撞”是肯定存在的(碰撞即不同的内容产生相同的摘要)。 应用: 一般地,把对一个信息的摘要称为该消息的指纹或数字签名。数字签名是保证信息的完整性和不可否认性的方法。数据的完整性是指信宿接收到的消息一定是信源发送的信息,而中间绝无任何更改;信息的不可否认性是指信源不能否认曾经发送过的信息。其实,通过数字签名还能实现对信源的身份识别(认证),即确定“信源”是否是信宿意定的通信伙伴。 数字签名应该具有唯一性

java 加密之消息摘要算法

雨燕双飞 提交于 2020-01-02 09:04:25
简介 消息摘要算法的主要特征是加密过程不需要密钥,并且经过加密的数据无法被解密,即单向加密,只有输入相同的明文数据经过相同的消息摘要算法才能得到相同的密文。 消息摘要算法不存在密钥的管理与分发问题,适合于分布式网络上使用。由于其加密计算的工作量相当巨大,所以以前的这种算法通常只用于数据量有限的情况下的加密,例如计算机的口令就是用不可逆加密算法加密的 用途 一般地,把对一个信息的摘要称为该消息的指纹或数字签名,数字签名是保证信息的完整性和不可否认性的方法。消息摘要算法适合作为数字签名算法,也是数字签名的核心算法。 分类 MD(Message Digest,消息摘要) SHA(Secure Hash Algorithm,安全散列算法) MAC(Message Authentication Code,消息认证码) …… MD MD算法包括MD2、MD4和MD5,摘要长度都是128位,都是单向加密,其中JDK自带MD2和MD5。 MD5的 java 实现 public class MyMD5 { public static void main(String[] args) { String str = "i am guo feng"; try { //获取MD5算法实例 MessageDigest md = MessageDigest.getInstance("MD5"); /

https协议

不问归期 提交于 2019-12-19 02:32:14
1. 什么是Https HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL 2. Https的作用 内容加密 建立一个信息安全通道,来保证数据传输的安全; 身份验证 确认网站的真实性; 数据完整性 防止内容被第三方冒充或者篡改。 3. HTTPS协议的劣势 需要进行 非对称 的加解密,且需要 三次握手 。 (出于安全考虑,浏览器不会在本地保存HTTPS缓存。实际上,只要在HTTP头中使用特定命令,HTTPS是可以缓存的。Firefox默认只在内存中缓存HTTPS。但是,只要头命令中有Cache-Control: Public,缓存就会被写到硬盘上。IE只要http头允许就可以缓存https内容,缓存策略与是否使用HTTPS协议无关。) 4. HTTPS和HTTP的区别 https协议需要到 CA申请证书 http是信息时明文传输;https则是具有安全性的ssl加密传输协议 http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443 http的连接很简单,是无状态的;https协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全 二、加解密相关知识 1. 对称加密 对称加密(也叫 私钥加密 )指加密和解密使用相同密钥的加密算法。有时又叫 传统密码算法 ,就是加密密钥能够从解密密钥中推算出来

如何实现安全通信?

点点圈 提交于 2019-12-15 17:40:37
对称加密与机密性 加解密使用同样的秘钥 保证秘钥安全即可实现机密性 推荐算法AES,ChaCha20 按照秘钥的位数又可以再分 基本原理为xor运算 所以明文大于秘钥长度时需要分组 最新分组模式为AEAD(GCM,CCM,Poly1305) 非对称加密 加解密使用不同的秘钥 基本原理为数学难题 RSA基于整数分解 ECC基于椭圆曲线离散对数 x25519被认为是最安全、最快速的曲线 私钥 不能给别人 公钥 可以给别人 公钥加密,私钥解密 别人只能加密,也就是不能看到别人加密后发给我的内容。 可以解决“密钥交换”的问题 使用DH/ECDHE秘钥交换协议可以具备前向保密性 使用量子通信进行秘钥分发可以保证绝对安全 私钥加密,公钥解密 别人只能解密,也就是只能看,不能伪造我发出的信息。 相当于我发出的信息被我用私钥签名了,这就是数字签名 摘要算法与完整性 哈希算法 推荐SHA-2 对消息进行哈希得到消息摘要 对消息+消息摘要进行对称加密以保证完整性 PKI 申请证书 生成公私钥 发起CSR将身份信息,公钥发给登记机构 登记机构验证身份后向CA发起CSR 颁发证书 对用户身份信息使用摘要算法生成用户身份信息摘要 对用户身份信息摘要使用机构的私钥加密生成用户身份信息加密摘要 公钥数字证书=用户身份信息+用户身份信息加密摘要+用户公钥 CA将证书给登记机构,登记机构给用户 校验证书

对称加密 非对称加密总结

喜夏-厌秋 提交于 2019-12-10 09:48:50
对称加密 :A与 B 之间之间的通讯数据都用同一套的密钥来进行加密解密。 优点 简单快捷,密钥较短,且破译困难。 缺点 如果用户一旦多的话,管理密钥也是一种困难。不方便直接沟通的两个用户之间怎么确定密钥也需要考虑,这其中就会有密钥泄露的风险,以及存在更换密钥的需求。 对称加密通常有 DES,IDEA,3DES 加密算法。 非对称加密 :用公钥和私钥来加解密的算法。打个比方,A 的公钥加密过的东西只能通过 A 的私钥来解密;同理,A 的私钥加密过的东西只能通过 A 的公钥来解密。顾名思义,公钥是公开的,别人可以获取的到;私钥是私有的,只能自己拥有。 缺点 加解密比对称加密耗时. 优点 比对称加密安全. 但是非对称加密也是存在漏洞,因为公钥是公开的,如果有 C 冒充 B 的身份利用 A 的公钥给 A 发消息,这样就乱套了,所以接下来就采用非对称加密+摘要算法+数字签名的机制来确保传输安全。 常见的非对称加密算法有:RSA、ECC(移动设备用)、Diffie-Hellman、El Gamal、DSA(数字签名用) Hash算法(摘要算法) Hash算法的特点是单向不可还原,用户可以通过hash算法对目标信息生成一段特定长度的唯一hash值,却不能通过这个hash值重新获得目标信息。因此Hash算法常用在不可还原的密码存储、信息完整性校验等。只要源数据不同,算法得到的摘要必定不同。