,然后就可以计算出会话密钥了,于是之前截获的加密数据会被破解DHE 算法既然固定一方的私钥有被破解的风险,那么干脆就让双方的私钥在每次密钥交换通信时,都是随机生成的、临时的,这个方式也就是 DHE 算法...ECDHE 算法是在 DHE 算法的基础上利用了 ECC 椭圆曲线特性,可以用更少的计算量计算出公钥,以及最终的会话密钥。...因为加密套件的第二个部分是针对证书的要求,所以当服务器配置ECC证书时,加密套件只能选择ECDSA_XXX或者ECDH_XXX。...当服务器配置RSA证书时,只能选择RSA_XXX或者ECDHE_RSA_XXX形式的加密套件。(这里解释下原因:如果RSA证书,那么密钥交换方式也是RSA的,肯定可以。...按照协商好的椭圆曲线去生成会话密钥,无需使用证书)如果加密套件选择ECDH_RSA或者ECDH_ECDSA时:由于ECDH加密套件默认表明了握手需要ECC证书(即ECC证书的公钥充当握手中server
一、引言 http与https区别:HTTP 由于是明文传输,所以在安全性上存在以下三个风险: 窃听风险,因为明文传输,可以直接抓包获取传输的数据,就会导致信息的泄漏。...第二次握手 1 Say Hello 当服务端收到客户端的「Client Hello」消息后,会确认 TLS 版本号是否支持,和从密码套件列表中选择一个密码套件,以及生成随机数(Server Random...现在使用的交互协议是ECDHE, 即ECC + DH+E (即基于椭圆曲线的一次一密密钥交换协议, E:ephemeral) 图3.2.2 ECDHE会话网络包 第一次握手 客户端首先会发一个「Client...:Client Random、Server Random 、使用的椭圆曲线、椭圆曲线基点 G、服务端椭圆曲线的公钥,这几个信息很重要,是后续生成会话密钥的材料 第三次握手 1 Key Exchange...,验证下本次生成的对称密钥是否可以正常使用。
所谓“双证书”其实就是 SSL 证书加密算法不同的两个证书而已,Let's Encrypt 就支持同时申请同域名不同加密算法的证书,也就是RSA 加密算法和ECC 加密算法(椭圆加密算法),俗称 ECC...ECC 加密算法(椭圆加密算法)小知识 椭圆加密算法(ECC)是一种公钥加密体制,最初由 Koblitz 和 Miller 两人于 1985 年提出,其数学基础是利用椭圆曲线上的有理点构成 Abel...加法群上椭圆离散对数的计算困难性。...公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。...公钥密码系统的加密算法 ECC 与 RSA 的对比 第六届国际密码学会议对应用于公钥密码系统的加密算法推荐了两种:基于大整数因子分解问题(IFP)的 RSA 算法和基于椭圆曲线上离散对数计算问题(
只有拥有解密方法的对象,经由解密过程,才能将密文还原为正常可读的内容。 现代的信息加密方式可以分为对称加密 和 非对称加密。 对称加密:在加密和解密时,使用相同的密钥。...由于加密明文的长度与密钥的长度在安全上具有相关性,通俗地说就是多长的密钥决定了它能加密多长的明文: 如果明文太短,就需要进行填充,然后再进行加密; 如果明文太长,就需要进行分组,每个分组分别进行加密。...图片 --- 常见的非对称加密算法有:RSA、ECC(Elliptic Curve Cryptography,椭圆曲线密码学)等。...RSA 密钥的长度推荐使用 2048 位以上(256 字节) ECC:ECC 的安全性基于 “椭圆曲线离散对数” 的数学难题,使用特定的曲线方程和基点生成公钥和私钥,ECC 的子算法 ECDHE 用于密钥交换...非对称加密的安全性较高,但是加密效率较低:非对称加密在在计算上相当复杂(非对称加密基于大数运算,比如大素数 或者 椭圆曲线,是复杂的数学难题),非对称加解密的性能远远不比对称加密。
在加密解密通信数据之前,客户端和服务器端协商出会话密钥,而会话密钥只有服务器端和特定的客户端才能知晓。...ECC模型 ECC椭圆曲线由很多点组成,这些点由特定的方程式组成的,比如方程式可以是y^2 = x^3 + ax + b,这些点连接起来就是一条曲线,但曲线并不是一个椭圆。...理论上方程式和各种参数组合可以是任意的,但是在密码学中,为了安全,系统预先定义了一系列的曲线,称为命名曲线(name curve),比如secp256k1就是一个命名曲线。...ECC本质上就是一个数学公式,任何人基于公式都可以设计出椭圆曲线,但要注意ECC离散对数问题(Elliptic-Curve Discrete-Logarithm Problem,简称ECDLP),如果实现不当...我们可以看到,SM2并不是一个全新设计的算法,而是借助现有的ECC理论,设计了一条命名曲线。这样,在已经实现了ECC算法的网络库上增加SM2算法的支持就非常简单,只需要将曲线参数添加即可。
出现访问不了的情况,请清除360国密浏览器所有缓存,重启浏览器后再访问) 源码在 https://github.com/mrpre/atls 上可以获得 GM/T 没有单独规范 SSL协议的文件,而是在...2:加密算法 国密SSL定义了多个加密套件,见6.4.4.1.1 实际上,若加密各个阶段(非对称、对称、摘要)都替换成国密标准的,较主流的是如下2个 1:ECC_SM4_SM3 2:ECDHE_SM4...ECC 对应的是标准的RSA,切勿被ECC迷惑,这个ECC并不和标准的椭圆曲线密钥交换算法类似,而是和RSA类似。...服务器发送ECC公钥(在证书中)到客户端,客户端拿ECC公钥加密随机数给服务器(client key exchange)。...: 标准TLS server key exchange是椭圆曲线参数+对该报文的签名,签名时的hash是2个随机数加该报文本身。
ECC算法 要形象地理解椭圆曲线加密算法,可以结合图形来看,以下是一个符合椭圆曲线的方程及图像。 ? ?...椭圆曲线加密算法的数学依据 : 考虑K=kG,其中K、G为椭圆曲线Ep(a,b)上的点,n为G的阶。k为小于n的整数。...因为实际使用中的ECC原则上把私钥k取得相当大,n也相当大,且椭圆曲线不再连续而是在实数内离散的值,要把n个解点逐一算出几乎是不可能的。 点G称为基点 k(k<n)为私有密钥 K为公开密钥 ?...基本步骤包括: ① 打招呼: 小明和电商互相介绍自己,小明和电商协商好以后的步骤里将使用到的特定密码算法。在本漏洞中,该算法为ECC加密算法。...可以看到导出的ECC密钥证书如下图所示,包括证书的有效期等信息。这就是微软在实现椭圆曲线加密(ECC)算法的数字证书,位于CryptoAPI.dll文件,也是被我们利用来伪造可信任来源的签名漏洞。
ECC又称椭圆曲线加密 ECC(Elliptic Curve Cryptography)椭圆曲线加密算法,相比RSA,ECC可以使用更短的密钥,来实现与RSA相当或更高的安全 定义了椭圆曲线上的加法和二倍运算...椭圆曲线依赖的数学难题是:k为正整数,p是椭圆曲线上的点(称为基点),k*p=Q,已知Q和P,很难计算出k ECC是建立在基于椭圆曲线的离散对数的难度, 大概过程如下 给定椭圆曲线上的一个点P,一个整数...Bernstein在2006年独立设计的椭圆曲线加密/签名/密钥交换算法, 和现有的任何椭圆曲线算法都完全独立 特点是: 完全开放设计: 算法各参数的选择直截了当,非常明确,没有任何可疑之处,相比之下目前广泛使用的椭圆曲线是...,在实用上也并不一定安全,有很大的概率通过缓存、时间、恶意输入摧毁安全性,而25519系列椭圆曲线经过特别设计,尽可能的将出错的概率降到了最低,可以说是实践上最安全的加密算法。...ECC的密钥尺寸和系统参数与RSA、DSA相比要小得多,意味着它所占的存贮空间要小得多。这对于加密算法在IC卡上的应用具有特别重要的意义 带宽要求低。
1881 年世界上的第一个电话保密专利出现。在第二次世界大战期间,德国军方启用「恩尼格玛」密码机,密码学在战争中起着非常重要的作用。...身份验证:确保数据发自特定的一方。 二、加密算法 根据密钥类型不同将现代密码技术分为两类:对称加密算法和非对称加密算法。...,是一种标准的 DSS(数字签名标准); ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。...1985 年 N.Koblitz 和 Miller 提出将椭圆曲线用于密码算法,全称:Elliptic curve cryptography,缩写为 ECC,根据是有限域上的椭圆曲线上的点群中的离散对数问题...如果重用百分比增加并绘制成图,我们便可以看到差距在缩小。
这份文档并没有像RFC那样描述得很详细,在实现上可能会存在很多不清楚的地方。很多时候,我们还要去翻看标准TLS 1.1的RFC4346。...在SSL通信中,最重要的是通信握手,握手成功后,就可以通过加密通道进行通信,握手过程如下: ? SSL握手 1....加密算法 非对称加密、对称加密、摘要等算法都替换为国密标准。在ECC_SM4_SM3套件中,非对称加密算法为SM2,对称加密算法为SM4,摘要算法为SM3。...Certificate Verify 证书的验签流程和标准ECC证书的验签流程也不同,请参考《GMT 0003.2-2012 SM2椭圆曲线公钥密码算法第2部分:数字签名算法》,在后面我会详细写一写SM2...密钥交换 实现时请参考RSA的密钥交换,而不要参考椭圆曲线密钥交换算法ECDH或ECDHE,这点需要注意。具体过程为: 服务器发送SM2公钥(在加密证书中)到客户端。
ECC算法 要形象地理解椭圆曲线加密算法,可以结合图形来看,以下是一个符合椭圆曲线的方程及图像。...椭圆曲线加密算法的数学依据 : 考虑K=kG,其中K、G为椭圆曲线Ep(a,b)上的点,n为G的阶。k为小于n的整数。...因为实际使用中的ECC原则上把私钥k取得相当大,n也相当大,且椭圆曲线不再连续而是在实数内离散的值,要把n个解点逐一算出几乎是不可能的。...基本步骤包括: ① 打招呼: 小明和电商互相介绍自己,小明和电商协商好以后的步骤里将使用到的特定密码算法。在本漏洞中,该算法为ECC加密算法。...可以看到导出的ECC密钥证书如下图所示,包括证书的有效期等信息。这就是微软在实现椭圆曲线加密(ECC)算法的数字证书,位于CryptoAPI.dll文件,也是被我们利用来伪造可信任来源的签名漏洞。
ECC ECDSA(椭圆曲线签名算法)的常见叫法,和RSA同时具有签名和加密不同,它只能做签名,它的优势是具有很好的性能、大小和安全性更高。...ECDH/ECHDE 椭圆曲线Diffie-Hellman(elliptic curve Diffie-Hellman,ECDH)密钥交换原理与DH相似,但是它的核心使用了不同的数学基础,ECHD基于椭圆曲线加密...,ECDH密钥交换发生在一条由服务器定义的椭圆曲线上,这条曲线代替了DH中域参数的角色,理论上,ECDH支持静态的密钥交换。...3DES 在加密套件中很多的密码使用的是3DES_EDE_CBC这种类型的,在维基上3DES提供的bits数是192bits(168+24),但由于Meet-in-the-middle attack攻击的影响...因此在等级评定上使用192bits,在套件的安全性上使用112bits PSK PSK 是“Pre-Shared Key”的缩写。就是 预先让通讯双方共享一些密钥(通常是对称加密密钥)。
在上一篇文章《解读国密非对称加密算法SM2》介绍了国密非对称算法SM2,在文章中说到,如果现有的网络库中已经实现ECC算法,只需加入SM2命名曲线的参数即可。...但在实现ECC_SM4_SM3这个密码套件中,在密钥交换过程中,存在客户端将Pre-Master Secret使用 SM2 公钥加密后传给服务器端的步骤。所以我们需要实现 SM2 的加密和解密。...如何使用 SM2 算法进行加密和解密,可以参考的资料是《GMT 0003.4-2012 SM2椭圆曲线公钥密码算法第4部分:公钥加密算法》。...如果我们内部使用,当然可以根据它们各自的长度(对于指定SM2曲线和SM3哈希算法,x1, y1, C3的长度是固定的)来拆分,但这样不够灵活,万一换了命名曲线或哈希算法呢?...在ECC_SM4_SM3密码套件中,SM2用于密钥交换(客户端生成Pre-Master Secret,加密后传输给服务器端)。当然,如果在程序中直接使用SM2加密信用卡卡号之类的小数据也是可以的。
HTTPS计算原理及算法分析 上一节提到四个主要的计算环节,事实上每个环节都需要用到指定的算法。下面结合腾讯现在主要使用到的证书签名和密码套件分别介绍一下。...什么是密码套件(cipher suite)?它其实是一套算法的统称,包括密钥交换算法、消息认证码算法、内容加密算法和伪随机数算法。...,影响用户访问速度 RSA的安全性建立在大数因子分解很困难的基础上;Diffie-Hellman的安全性建立在离散对数求解比较困难的基础上;ECDHE是在椭圆曲线有限域上实现的Diffie-Hellman...即使集合全世界性能最强劲的CPU,也无法在短时间内暴力破解出2048位及以上的RSA密钥。 椭圆曲线实际上是一个集合,并且定义了一套计算规则。使用较小的数字就能实现RSA同样的安全强度。...椭圆曲线的操作时间统计如下: 曲线名 Op Op/s ecdh (nistp256) 0.0004s 2350.3 椭圆曲线的操作曲线基点选取,耗时大概0.4毫秒。
ECDHE 算法是基于椭圆曲线实现的,不同的椭圆曲线性能也不同,应该尽量选择 x25519 曲线,该曲线是目前最快的椭圆曲线。...比如在 Nginx 上,可以使用 ssl_ecdh_curve 指令配置想使用的椭圆曲线,把优先使用的放在前面: 对于对称加密算法方面,如果对安全性不是特别高的要求,可以选用 AES_128_GCM,...比如在 Nginx 上,可以使用 ssl_ciphers 指令配置想使用的非对称加密算法和对称加密算法,也就是密钥套件,而且把性能最快最安全的算法放在最前面: TLS 升级 当然,如果可以,直接把 TLS...怎么合并的呢?具体的做法是,客户端在 Client Hello 消息里带上了支持的椭圆曲线,以及这些椭圆曲线对应的公钥。 服务端收到后,选定一个椭圆曲线等参数,然后返回消息时,带上服务端这边的公钥。...所以,对于服务器的证书应该选择椭圆曲线(ECDSA)证书,而不是 RSA 证书,因为在相同安全强度下, ECC 密钥长度比 RSA 短的多。
SM2算法 SM2算法:SM2椭圆曲线公钥密码算法是我国自主设计的公钥密码算法,包括SM2-1椭圆曲线数字签名算法,SM2-2椭圆曲线密钥交换协议,SM2-3椭圆曲线公钥加密算法,分别用于实现数字签名密钥协商和数据加密等功能...算法描述: 1、用户A选定一条适合加密的椭圆曲线Ep(a,b)(如:y2=x3+ax+b),并取椭圆曲线上一点,作为基点G。 ...SM2算法主要考虑素域Fp和F2m上的椭圆曲线,分别介绍了这两类域的表示,运算,以及域上的椭圆曲线的点的表示,运算和多倍点计算算法。...详细说明了有限域上椭圆曲线的参数生成以及验证,椭圆曲线的参数包括有限域的选取,椭圆曲线方程参数,椭圆曲线群基点的选取等,并给出了选取的标准以便于验证。...在总则的基础上给出了数字签名算法(包括数字签名生成算法和验证算法),密钥交换协议以及公钥加密算法(包括加密算法和解密算法),并在每个部分给出了算法描述,算法流程和相关示例。
它基于有限域上特定椭圆曲线进行操作,最重要的操作是椭圆曲线的点倍积,不夸张的说,椭圆曲线点倍积正是椭圆曲线密码学的基石。 为什么这么说呢?...加密用椭圆曲线的参数组 ECC的使用场景包括数字签名,安全的伪随机数生成等。在应用中,所采用的椭圆曲线必须用一组完整的参数来加以定义,这组参数被称为域参数。...(参数k是标量),IsOnCurve()检查参数所代表的点是否在该椭圆曲线上; elliptic.CurveParams结构体实现了接口的所有方法,另外用成员属性定义了一个具体的椭圆曲线,...小结: 以太坊中的数字签名全部采用椭圆曲线数字加密算法(ECDSA), 它的理论基础是椭圆曲线密码学(ECC),而ECC存在的理论基础是点倍积(point multiplication)算式 Q =...以太坊中调用的椭圆曲线数字签名算法实现,来自己libsecp256k1库,这是一个针对特定椭圆曲线secp256k1的、经过优化的C++库,并早已被比特币系统采用。
我们应用层的的消息数据在SSL记录协议会给分成很多段,然后再对这个片段进行加密,最后在加上记录头后就发送出去。...可以看出RSA和椭圆曲线密钥交换算法的私钥用途是不一样的,RSA密钥交换时是用来做加解密的,椭圆曲线密钥交换时是用来做签名的。...这里 ECDHE 使用的 ECC 命名曲线是 x25519 。Server 的公钥是 (62761b5……),签名算法是 ECDSA_secp256r1_SHA256 。...由于是 ECDHE 协商算法,所以 Client 需要发送 ECC DH 公钥,对应的公钥值是 (1e58cf……)。公钥长度 32 字节。...(is resumable): 标识会话是否可恢复 当 Server 保存了以上的信息,可以再次计算出 TLS 记录层需要的 security parameters 加密参数,从而加密应用数据。
对数运算的取值是可以连续的,而离散对数的取值是不能连续的,因此也以「离散」得名, 离散对数是在对数运算的基础上加了「模运算」,也就说取余数,对应编程语言的操作符是「%」,也可以用 mod 表示。...ECDHE 算法是在 DHE 算法的基础上利用了 ECC 椭圆曲线特性,可以用更少的计算量计算出公钥,以及最终的会话密钥。...),此时小红的公私钥为 Q1 和 d1,小明的公私钥为 Q2 和 d2; 双方交换各自的公钥,最后小红计算点(x1,y1) = d1Q2,小明计算点(x2,y2) = d2Q1,由于椭圆曲线上是可以满足乘法交换和结合律...接着,客户端会发「Encrypted Handshake Message」消息,把之前发送的数据做一个摘要,再用对称密钥加密一下,让服务端做个验证,验证下本次生成的对称密钥是否可以正常使用。 ?...,而对于 ECDHE 算法,客户端可以不用等服务端的最后一次 TLS 握手,就可以提前发出加密的 HTTP 数据,节省了一个消息的往返时间; 使用 ECDHE, 在 TLS 第 2 次握手中,会出现服务器端发出的
“加密货币”,到底是不是加了密的货币?为什么***和以太坊等众多区块链项目选用的是椭圆曲线而不是RSA?大名鼎鼎的Sony PS3上的私钥是如何被盗的?...议题纲要: 1)椭圆曲线的重要性 2)RSA算法回顾 3)群论 4)椭圆曲线上加法的定义 5)基于椭圆曲线的签名和验签 6)安全性问题 7)ECC与RSA的比较 3)嘉宾: 蒋鑫,PPIO...因此椭圆曲线密码的单位比特强度要高于其他公钥体制。 数字签名算法(DSA)在联邦信息处理标准FIPS中有详细论述,称为数字签名标准。它的安全性基于素域上的离散对数问题。...它可以看作是椭圆曲线对先前基于离散对数问题(DLP)的密码系统的模拟,只是群元素由素域中的元素数换为有限域上的椭圆曲线上的点。 椭圆曲线密码体制的安全性基于椭圆曲线离散对数问题(ECDLP)的难解性。...椭圆曲线离散对数问题远难于离散对数问题,椭圆曲线密码系统的单位比特强度要远高于传统的离散对数系统。因此在使用较短的密钥的情况下,ECC可以达到于DL系统相同的安全级别。
领取专属 10元无门槛券
手把手带您无忧上云