非对称加密

非对称 RSA 加密原理

做~自己de王妃 提交于 2019-11-30 08:14:59
非对称 RSA 加密原理 RSA 加密原理 步骤 说明 描述 备注 1 找出质数 P 、Q - 2 计算公共模数 N = P * Q - 3 欧拉函数 φ(N) = (P-1)(Q-1) - 4 计算公钥E 1 < E < φ(N) E的取值必须是整数 E 和 φ(N) 必须是互质数 5 计算私钥D E * D % φ(N) = 1 - 6 加密 C = M E mod N C:密文 M:明文 7 解密 M =C D mod N C:密文 M:明文 公钥=(E , N) 私钥=(D, N) 示例 1、找出质数 P 、Q P = 3 Q = 11 2、计算公共模数 N = P * Q = 3 * 11 = 33 N = 33 3、 欧拉函数 φ(N) = (P-1)(Q-1) = 2 * 10 = 20 φ(N) = 20 4、计算公钥E 1 < E < φ(N) 1 <E < 20 E 的取值范围 {3, 7, 9, 11, 13, 17, 19} E的取值必须是整数, E 和 φ(N) 必须是互质数 为了测试,我们取最小的值 E =3 3 和 φ(N) =20 互为质数,满足条件 5、计算私钥D E * D % φ(N) = 1 3 * D % 20 = 1 根据上面可计算出 D = 7 6、公钥加密 我们这里为了演示,就加密一个比较小的数字 M = 2 公式:C = ME

数据安全传输中的非对称加密、信息摘要、HMAC

旧巷老猫 提交于 2019-11-29 21:51:30
一 最近对接了很多第三方支付产品,由于涉及到敏感信息及金钱等非常重要的数据,数据传输安全就显得尤为重要。那么实际是怎样处理的呢? 一般的数据传输流程大概如下: 1.调用支付接口时,将数据信息+商户私钥生成签名,将数据和签名一同发给支付机构 2.支付机构方留有商户的公钥,收到数据时,用商户公钥+数据信息+签名来验证数据的身份和一致性 3.异步通知到商户时,支付机构将数据信息和签名信息一同付给商户服务器 4.商户方留有支付机构的公钥,收到数据时,用支付机构公钥+数据信息+签名来验证数据的身份和一致性 二 下面自己写了一个demo,希望能对各位同学有所帮助: 1.工具类 package com.cyq.util; import javax.crypto.Mac; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; import java.security.MessageDigest; /** * @author cyq */ public class HmacDigestUtil { static char[] hexDigits ={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'}; private static

基于HTTPS的安全机制的研究(一)

a 夏天 提交于 2019-11-29 20:40:57
##1 问题提出 现在广泛使用的HTTP协议采用的是一种明文传输的方式,因此通信双方的数据在网络上传输是十分不安全的。 ##2 解决方案 一种简单的解决方案就是对传输的数据进行加密处理。 目前流行的加密方式有两种:对称加密和非对称加密。 ###2.1 对称加密 首先讨论对称加密方式。 对称加密指的是通信双方使用同一套密钥对数据进行加密和解密。 如果使用对称加密就意味着通信的双方必须都知道密钥,才能完成加密和解密操作。 一种典型的场景是:客户端发送密钥至服务器,服务器接受该密钥,之后所有的数据传输都采用该密钥进行加密和解密; 该方法虽然可以解决明文传输的问题,却存在安全隐患。在密钥协商阶段,客户端需要发送密钥给服务器,此时如果攻击者监测到该密钥,就可以使用该密钥来解密之后所有的数据,那么本次经对称加密后的数据传输也就变为明文传输。 因此,如何确保对称加密方式中密钥的安全是此方式中最为核心的问题。 ###2.2 非对称加密 接下来我们讨论非对称加密方式。 非对称加密的密钥有公钥和私钥之分,使用公钥加密的数据只有私钥才能解密,同理使用私钥加密的数据只有公钥才能解密。 那么对传输数据进行非对称加密是不是就是安全的呢? 非对称加密一种典型的场景是: 由服务器生成公钥和私钥,并将公钥发送给客户端,之后服务器和客户端之间所有的数据都采用公钥和私钥加密。 接下来我们分析下这种场景。

对称加密与分对称加密的实现

邮差的信 提交于 2019-11-29 15:39:29
一、对称加密: 1、DES(Data Encryption Standard,即数据加密标准) 详细原理参见:https://blog.csdn.net/qq_27570955/article/details/52442092 github地址:https://github.com/tarequeh/DES.git 编译:gcc -O3 des.c run_des.c -o run_des.o 注:本项目亦可以实现3DES 2、AES(Advanced Encryption Standard,即高级加密标准,又称Rijndael加密法) 二、非对称加密: 1、RSA 详细原理参见:https://blog.csdn.net/kikajack/article/details/80703894 github地址:https://github.com/pantaloons/RSA.git 编译:gcc multiple.c -o rsa 来源: https://www.cnblogs.com/lucifer1997/p/11521098.html

关于https和ssl/tls协议的介绍

蹲街弑〆低调 提交于 2019-11-29 03:42:33
先澄清几个术语——HTTPS、SSL、TLS 1. “HTTP”是干嘛用滴? 2. “SSL/TLS”是干嘛用滴? 3. “HTTPS”是啥意思? 再来说说 HTTP 协议的特点 1. HTTP 的版本和历史 2. HTTP 和 TCP 之间的关系 在网络分层模型中,TCP 被称为“传输层协议”,而 HTTP 被称为“应用层协议”。 3. HTTP 协议如何使用 TCP 连接? 谈谈“对称加密”和“非对称加密”的概念 1. 啥是“加密”和“解密”? 2. 啥是“对称加密”? 3. 啥是“非对称加密”? 4. 各自有啥优缺点? CA 证书的原理及用途 HTTPS 协议的需求是啥? 为什么 兼容性 可扩展性 保密性(防泄密) 完整性(防篡改) 真实性(防假冒) 性能 先澄清几个术语——HTTPS、SSL、TLS 1. “HTTP”是干嘛用滴? 首先,HTTP 是一个网络协议,是专门用来帮你传输 Web 内容滴。关于这个协议,就算你不了解,至少也听说过吧?比如你访问俺的博客的主页,浏览器地址栏会出现网址 俺加了粗体的部分就是指 HTTP 协议。大部分网站都是通过 HTTP 协议来传输 Web 页面、以及 Web 页面上包含的各种东东(图片、CSS 样式、JS 脚本)。 2. “SSL/TLS”是干嘛用滴? SSL 是洋文“Secure Sockets Layer”的缩写,中文叫做

HTTP 升级到 HTTPS 基础知识详解

半城伤御伤魂 提交于 2019-11-28 17:23:38
HTTP 与 HTTPS 详解 首发于公众号:吴先生的伊甸园 这俩天将个人做的小网站从 HTTP 升级成了 HTTPS,使用的是 Apache2.4 的服务器。在此期间,详细的学习了 https 相关的知识和如何配置 Apache 升级成 HTTPS。 本篇文章由以下部分构成 什么是 HTTP 什么是 HTTPS 为什么要使用 HTTPS HTTPS 是如何加密的 什么是 CA HTTP 和 HTTPS 连接是如何建立的 什么是证书 如何获取证书 什么是 HTTP HTTP 指的是超文本传输协议(HyperText Transfer Protocol)。首先,它是一个 协议 。「协议」是指计算机通信网络中两台计算机之间进行通信所必须共同遵守的规则。也就是大家事先约定好的,统一执行的标准。众所周知,HTTP 是无状态,无连接的。首先讲一下如何理解无连接。无连接指的是在 HTTP1.0 版本中,每次建立起的 TCP 连接只处理一个请求,收到客户的应答之后就立即断开链接。也就是说假如一个网页内仅有十张图片,那么需要建立-断开链接十一次。这就是无连接的含义。但是这种机制显然无法应对现在丰富的网页内容,每一个网页都包含大量的资源文件,如果每个连接仅传输一个文件就断开太过于浪费服务器资源了。所以在 HTTP1.1 中支持了持久性连接,详细点说就是在 HTTP 头部行中 Connection

https原理

故事扮演 提交于 2019-11-28 12:34:40
这里做个笔记,看了网上的一些资料后自己理解的https协议的工作原理。   先来说下对称加密和非对称加密,对称加密就是当在对信息进行加密和解密时使用的秘钥是同一个秘钥,对称加密的优点是效率高但是相对不安全;非对称加密秘钥分为公钥和私钥,我们可以使用私钥加密用公钥解密,当然也可以使用公钥加密使用私钥解密,非对称加密的优点就是要比对称加密安全,但是效率要低。   客户端与服务器之间的通讯是使用非对称加密和对称加密相结合的方式进行的,即先使用非对称加密的方式来协商对称加密的加密秘钥,然后再使用对称加密的方式来进行信息的传输。这样既保证了信息的安全性又解决了信息传输时解密信息所带来的效率问题。   为了保证在传递加密公钥的过程中不会别黑客劫持而导致信息被篡改,所有这里需要一个CA机构来保证加密公钥的正确性。一般的过程: 1.网站的管理员向CA服务商申请服务器秘钥(公钥和私钥) 2.客户端请求服务器获取公钥,并使用CA机构预置在客户端的CA根证书来验证服务器公钥是否正确,是否在有效期内等等 3.如果验证服务器公钥没有问题,客户端生成一个用来对称加密的秘钥并使用服务器公钥加密,并发送给服务器端 4.服务端接收到被加密的秘钥后使用私钥解密,并得到实际的对称加密的秘钥值,然后使用对称加密的方式加密之后要传输的信息 5.客户端接收到信息后使用对称加密秘钥解密,获取到服务器传输的实际信息内容   来源

对称加密和非对称加密

耗尽温柔 提交于 2019-11-27 23:48:17
对称加密算法 同一个秘钥可以用于加密和解密,缺点是秘钥的保存安全问题 不对称加密算法 工作过程: 1、乙方生成一对密钥(公钥和私钥)并将公钥向其它方公开。 2、得到该公钥的甲方使用该密钥对机密信息进行加密后再发送给乙方。 3、乙方再用自己保存的另一把专用密钥(私钥)对加密后的信息进行解密。乙方只能用其专用密钥(私钥)解密由对应的公钥加密后的信息。 在传输过程中,即使攻击者截获了传输的密文,并得到了乙的公钥,也无法破解密文,因为只有乙的私钥才能解密密文。 同样,如果乙要回复加密信息给甲,那么需要甲先公布甲的公钥给乙用于加密,甲自己保存甲的私钥用于解密。 转载于:https://www.cnblogs.com/JAYIT/p/5614329.html 来源: https://blog.csdn.net/weixin_30737433/article/details/99814832

应用层协议:HTTPS

╄→尐↘猪︶ㄣ 提交于 2019-11-27 21:27:13
1. HTTPS定义   Hyper Text Transfer Protocol over Secure Socket Layer,安全的超文本传输协议,网景公式设计了SSL(Secure Sockets Layer)协议用于对Http协议传输的数据进行加密,保证会话过程中的安全性。   缩写:HTTPS,常称为HTTP over TLS,HTTP over SSL或HTTP Secure   两大作用:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的真实性。 2. 密码学基础  明文: 明文指的是未被加密过的原始数据。 密文:明文被某种加密算法加密之后,会变成密文,从而确保原始数据的安全。密文也可以被解密,得到原始的明文。 密钥:密钥是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥,分别应用在对称加密和非对称加密上。 对称加密对称加密又叫做私钥加密,即信息的发送方和接收方使用同一个密钥去加密和解密数据。 其加密过程如下:明文 + 加密算法 + 私钥 => 密文 解密过程如下:密文 + 解密算法 + 私钥 => 明文 对称加密中用到的密钥叫做私钥,私钥表示个人私有的密钥,即该密钥不能被泄露。 其加密过程中的私钥与解密过程中用到的私钥是同一个密钥,这也是称加密之所以称之为“对称”的原因

SSH加密原理、RSA非对称加密算法学习与理解

北慕城南 提交于 2019-11-27 19:52:29
首先声明一下,这里所说的SSH,并不是Java传统的三大框架,而是一种建立在应用层和传输层基础上的安全外壳协议,熟悉Linux的朋友经常使用到一 个SSH Secure Shell Cilent的工具,本文也是基于此工具加密原理的学习,在SSH的加密原理中,使用到了RSA非对称加密算法,本文也一并做了学习和了解。 非对称加密算法 在日常的工作生产中, 我们经常需要进行数据的通讯,开发人员经常需要对数据进行加解密操作,以保证数据的安全。数据的加密算法非为对称加密和非对称加密两种,常用的DES、三 重DES、AES等都属于对称加密,即通过一个密钥可以进行数据的加解密,密钥一旦泄漏,传输的数据则不安全。 非对称加密算法的核心源于数学问题,它存在公钥和私钥的概念,要完成加解密操作,需要两个密钥同时参与。我们常说的“公钥加密,私钥加密”或“私钥加密, 公钥解密”都属于非对称加密的范畴,后文中讲到的RSA算法也一种典型的非对称加密算法。公钥加密的数据必须使用私钥才可以解密,同样,私钥加密的数据也 只能通过公钥进行解密。 相比对称加密,非对称加密的安全性得到了提升,但是也存在明显的缺点,非对称加解密的效率要远远小于对称加解密。所以非对称加密往往被用在一些安全性要求比较高的应用或领域中。 典型的RSA非对称加密 RSA加密算法是一种典型的 非对称加密算法,它基于大数的因式分解数学难题