基础知识 ECC私钥+椭圆曲线=ECC公钥 漏洞成因 微软的私钥+微软选的椭圆曲线=微软根证书里面的公钥 黑客的私钥+黑客选的椭圆曲线=微软根证书里面的公钥 不同的椭圆曲线和不同的私钥,能产生一模一样的公钥...因为实际使用中的ECC原则上把私钥k取得相当大,n也相当大,且椭圆曲线不再连续而是在实数内离散的值,要把n个解点逐一算出几乎是不可能的。 点G称为基点 k(k<n)为私有密钥 K为公开密钥 ?...ECC和RSA加密算法对比:椭圆曲线加密算法(ECC)和RSA同样是一种公开密钥加密技术,对原始数据以公钥加密,以私钥解密,即便攻击者获取密文和公钥也无法(在合理的时间或代价下)解密获取明文。...较短的密钥也意味着更少的存储空间、更快的加解密速度和更少的带宽消耗,正因为椭圆加密算法的这些优势,它被用于Windows的签名系统、https的证书、比特币系统和中国的二代身份证系统中。...生成“cert.crt”签名证书文件。 ? 第七步,将证书的密钥和欺骗性的CA打包到一个PKCS12文件中,以对可执行文件进行签名。
CA 证书颁发机构(相当于所有人都信任的一个中间机构),CA机构也有自已的公钥与私钥。client通过CA机构的公钥与证数中的数字签名来验证证书的合法性。...SSL提供的功能 java keytool Keytool 是一个Java 数据证书的管理工具 ,Keytool 将密钥(key)和证书(certificates)存在一个称为keystore的文件中...在keystore里,包含两种数据: (1)密钥实体(Key entity)——密钥(secret key)又或者是私钥和配对公钥 (2)可信任的证书实体(trusted certificate entries...-v 显示密钥库中的证书详细信息 -export 将别名指定的证书导出到文件 keytool -export -alias 需要导出的别名 -keystore...-keypass 旧密码 -new 新密码 -storepass keystore密码 -keystore -import 将已签名数字证书导入密钥库 keytool -import
(1) 基础知识 ECC私钥+椭圆曲线=ECC公钥 (2) 漏洞成因 微软的私钥+微软选的椭圆曲线=微软根证书里面的公钥 黑客的私钥+黑客选的椭圆曲线=微软根证书里面的公钥 不同的椭圆曲线和不同的私钥,...因为实际使用中的ECC原则上把私钥k取得相当大,n也相当大,且椭圆曲线不再连续而是在实数内离散的值,要把n个解点逐一算出几乎是不可能的。...点G称为基点 k(k<n)为私有密钥 K为公开密钥 ECC和RSA加密算法对比: 椭圆曲线加密算法(ECC)和RSA同样是一种公开密钥加密技术,对原始数据以公钥加密,以私钥解密,即便攻击者获取密文和公钥也无法...较短的密钥也意味着更少的存储空间、更快的加解密速度和更少的带宽消耗,正因为椭圆加密算法的这些优势,它被用于Windows的签名系统、https的证书、比特币系统和中国的二代身份证系统中。...第七步,将证书的密钥和欺骗性的CA打包到一个PKCS12文件中,以对可执行文件进行签名。
可以看到,整个密钥协商过程中,小红和小明公开了 4 个信息:P、G、A、B,其中 P、G 是算法的参数,A 和 B 是公钥,而 a、b 是双方各自保管的私钥,黑客无法获取这 2 个私钥,因此黑客只能从公开的...小红和小明使用 ECDHE 密钥交换算法的过程: 双方事先确定好使用哪种椭圆曲线,和曲线上的基点 G,这两个参数都是公开的; 双方各自随机生成一个随机数作为私钥d,并与基点 G相乘得到公钥Q(Q = dG...这个过程中,双方的私钥都是随机、临时生成的,都是不公开的,即使根据公开的信息(椭圆曲线、公钥、基点 G)也是很难计算出椭圆曲线上的离散对数(私钥)。...G 和私钥计算出服务端的椭圆曲线公钥,这个会公开给客户端。...至此,双方都有对方的椭圆曲线公钥、自己的椭圆曲线私钥、椭圆曲线基点 G。
将服务器公钥放入到数字证书中,解决了冒充的风险。...3.1.1 RSA密钥交换协议过程 •RSA 算法来实现密钥交换,首先将TLS 证书部署服务端,证书文件中包含一对公私钥,其中公钥会在 TLS 握手阶段传递给客户端,私钥则一直留在服务端(一定要确保私钥不能被窃取...,保留到本地; 根据基点 G 和私钥计算出服务端的椭圆曲线公钥,这个会公开给客户端。...、自己的椭圆曲线私钥、椭圆曲线基点 G。...,而且双方的私钥也未暴露在网络中,所以只是抓包和知道证书与私钥,也是不能恢复出会话密钥的。
,然后对着信息进行计算,获得一个hash值 CA会使用自己的私钥将该hash值加密,生成签名 最后将签名添加在文件证书上,形成数字证书 客户端如何校验服务端的数字证书 客户端使用相同的算法计算服务器数字证书的...ECDHE算法密钥交换过程 客户端和服务端确定好使用哪种椭圆曲线以及曲线上的基点G,这个对外公开 客户端和服务端各自生成一个私钥(假设分别为c和s),将私钥与基点G相乘可以分别得到其公钥(假设分别为CP...named_curve的椭圆曲线,选好椭圆曲线相当于基点G也好了 Pubkey:根据基点G和服务器生成的私钥计算出的公钥 Signature:为了保证这个椭圆曲线的公钥不被第三方篡改,服务端会用RSA签名算法给服务端的椭圆曲线公钥做个签名...目前客户端和服务端已经共享了两个随机数、使用的椭圆曲线,椭圆曲线基点G,服务器的椭圆公钥 TLS第三次握手 这一步客户端会发送Client Key Exchange消息,消息如下: Pubkey:客户端根据服务端共享的曲线...+ 椭圆曲线计算出来的共享密钥」来生成最终的会话密钥。
,如6中红色字体中trustStore的生成过程就是把从keyStore导出的公钥证书导入到trustStore中。...changealias命令修改 keyalg是加密算法,有DSA,RSA,默认是DSA,因为DSA只能用于加密,不能用户证书签名,所以这里必须指定使用RSA算法 这里有两个密码:密钥库密码和密钥密码,...cer证书导入到keyStore中。...以一种方式简单介绍先,使用keyTool生成自签名证书,通过这个自签名证书生成一个证书请求文件后缀是.csr,然后我们拿着这个文件和钱去xx认证中心,认证后就是就是经过认证中心认证的证书了,然后把这个证书导入密钥库...导出公钥证书,把导出的公钥证书导入到trustStore中,就生成了trustStore 5,怎么从keyStore中导出证书和公钥密钥?
常见的密钥交换算法包括RSA、Diffie-Hellman、ECDH(椭圆曲线Diffie-Hellman)等。 数字签名算法:这个算法用于验证消息的完整性和来源。...例如,密码套件TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256包含以下四个部分: 密钥交换算法:ECDHE(椭圆曲线Diffie-Hellman Ephemeral) 数字签名算法...在使用SSL/TLS的过程中,邮件客户端会验证服务器的证书,以确保服务器的身份。同时,邮件客户端和服务器会协商一个加密算法和密钥,用于加密邮件内容。...四、Android中的SSL证书 在Android应用中使用SSL,需要将服务器的证书导入到应用中。这通常通过在应用的资源文件中包含一个证书文件,然后在代码中加载这个证书来实现。...以下是使用Java、C++(libcurl库)和Go语言进行特定证书指纹校验的示例代码: Java:在Java中,你可以在你的TrustManager中添加额外的逻辑来检查证书指纹: import javax.net.ssl
在ECC中,我们通常使用有限域上的椭圆曲线,这样可以提高运算效率。 2.2. ECC密钥生成 在ECC中,密钥的生成主要依赖于椭圆曲线上的点。...选择一个合适的椭圆曲线和一个基点(生成元),私钥为一个随机选择的整数,公钥为私钥与基点的乘积。由于椭圆曲线上的点运算具有单向性,从公钥无法推导出私钥,因此保证了ECC算法的安全性。 2.3....签名者使用自己的私钥对数据进行签名,验证者使用签名者的公钥对签名进行验证。签名过程包括将消息摘要(哈希值)与私钥进行运算生成签名,验证过程则通过公钥和签名验证消息摘要的正确性。...在Java中使用ECC(椭圆曲线密码学)进行加解密通常涉及密钥对的生成、加密和解密过程。...对于加密大量数据,通常使用对称加密算法(如AES),而ECC可用于安全地交换这些对称密钥。 下面代码使用Java的BouncyCastle库进行ECC密钥对生成、加密和解密的简单示例。
ECDSA with SHA-256:基于椭圆曲线数字签名算法(ECDSA)和SHA-256哈希算法,提供了与RSA相当的安全性,但在相同安全级别下使用更短的密钥。...ECDSA的特点包括: 基于椭圆曲线:与RSA和DSA相比,ECDSA使用椭圆曲线算法来实现数字签名,这使得它能够在保持相同安全级别的情况下使用更短的密钥长度。...私钥推出公钥:与RSA不同,ECDSA的私钥可以推导出对应的公钥,这使得密钥管理更加灵活。 高效性能:ECDSA在签名和验证过程中具有较高的性能表现,尤其适用于资源受限的环境。...在加密货币领域,比特币等加密货币通常使用ECDSA算法进行数字签名。比特币采用的椭圆曲线标准是secp256k1,这是一种特定的椭圆曲线参数集。...BouncyCastle库提供了ECDSA的完整实现,可以用于生成密钥对、签名和验证操作。利用BouncyCastle,开发者可以轻松地在Java应用程序中使用ECDSA算法进行数字签名。
密钥交换 密钥交换的方式有两种:RSA 和 ECDHE,RSA 的方式比较简单,浏览器生成一把密钥,然后使用证书 RSA 的公钥进行加密发给服务端,服务再使用它的密钥进行解密得到密钥,这样就能够共享密钥了...它的缺点是攻击者虽然在发送的过程中无法破解,但是如果它保存了所有加密的数据,等到证书到期没有被维护之类的原因导致私钥泄露,那么它就可以使用这把私钥去解密之前传送过的所有数据。...ECDHE 的全称是 Elliptic Curve Diffie–Hellman key Exchange 椭圆曲线迪非-赫尔曼密钥交换,它是对迪非-赫尔曼密钥交换算法的改进。...这个应该比较好理解,而引入椭圆曲线加密能够提高破解难度。 椭圆曲线加密 现在的证书的签名算法有两种:RSA 和新起的 EC。如下图所示,google.com 便是使用的 ECC 证书: ?...如下图所示,有一条椭圆曲线方程: y ^ 3 = x ^ 2 + ax + b: ?
、私钥是个人持有的 代表算法:RSA、EIGamal、椭圆算法 ECC RSA:经典的公钥算法 安全性未知 EIGamal:利用了模运算下求离散对数困难的特性 椭圆曲线算法:现代备受关注的算法系列...,基于对椭圆曲线上特定点进行特殊乘法逆运算难以计算的特性。...如果证书没问题,则用证书中公钥加密随机数 R3,发送给服务器。此时,只有客户端和服务器都拥有 R1、R2 和 R3 信息,基于 R1、R2 和 R3,生成对称的会话密钥(如 AES算法)。...使用CSPRNG生成一个长度足够的盐值 将盐值混入密码,并使用标准的加密哈希函数进行加密,如SHA256,再把哈希值和盐值一起存入数据库中对应此用户的那条记录 校验密码的步骤 从数据库取出用户的密码哈希值和对应盐值...,将盐值混入用户输入的密码,并且使用同样的哈希函数进行加密,比较上一步的结果和数据库储存的哈希值是否相同,如果相同那么密码正确,反之密码错误 加密部分代码: public class MD5Test
“ 本篇将讨论 HTTPS 的加解密原理,很多人都知道 RSA,以为 HTTPS=RSA,使用 RSA 加解密数据,实际上这是不对的。...HTTPS 是使用 RSA 进行身份验证和交换密钥,然后再使用交换的密钥进行加解密数据。 身份验证是使用 RSA 的非对称加密,而数据传输是双方使用相同的密钥进行的对称加密。...它的缺点是攻击者虽然在发送的过程中无法破解,但是如果它保存了所有加密的数据,等到证书到期没有被维护之类的原因导致私钥泄露,那么它就可以使用这把私钥去解密之前传送过的所有数据。...ECDHE 的全称是 Elliptic Curve Diffie–Hellman key Exchange 椭圆曲线迪非-赫尔曼密钥交换,它是对迪非-赫尔曼密钥交换算法的改进。...这个应该比较好理解,而引入椭圆曲线加密能够提高破解难度。 椭圆曲线加密 现在的证书的签名算法有两种:RSA 和新起的 EC。如下图所示,google.com 便是使用的 ECC 证书: ?
用在注册、登录模块,在数字证书的签名算法中,SHA算法更广泛。...三方机构就是CA(CertificateAuthority),证书中心。 CA用自己的私钥对信息原文所有者发布的公钥和相关信息进行加密,得出的内容就是数字证书。...椭圆加密—椭圆曲线对称加密方案 该方法主要采用Diffie-Hellman密钥交换算法,使用非对称密钥进行对称加解密。下面是获取共享对称密钥的过程: (1)Alice向Bob发送点G。...(6)Alice对Bob发送的点bG计算其在椭圆曲线上a倍的点。Alice在椭圆曲线上计算a(bG)=abG,它就是Alice和Bob的共享密钥。...(7)Bob对Alice发送的点aG计算其在椭圆曲线上b倍的点。Bob在椭圆曲线上计算b(aG)=abG,它就是Alice和Bob的共享密钥。
浏览器和服务器每次新建会话时都使用非对称密钥交换算法协商出对称密钥,使用这些 对称密钥完成应用数据的加解密和验证,整个会话过程中的密钥只在内存中生成和保存,而且每个会话的对称密钥都不相同(除非会话复用)...至此,浏览器侧的密钥已经完成协商。 浏览器使用证书公钥P将premaster_secrect加密后发送给服务器。 服务端使用私钥解密得到premaster_secrect。...DH算法有一个比较大的缺陷就是需要提供足够大的私钥来保证安全性,所以比较消耗CPU计算资源。ECC椭圆曲线算术能够很好的解决这个问题,224位的密钥长度就能达到RSA2048位的安全强度。...ECC的曲线公式描述的其实不是椭圆,只是跟椭圆曲线周长公式形似才叫椭圆曲线加密算术。ECC涉及到了有限域、群等近世代数的多个概念,就不做详细介绍了。...根CA证书都是自签名,即用自己的公钥和私钥完成了签名的制作和验证。而证书链上的证书签名都是使用上一级证书的密钥对完成签名和验证的。 5. 怎样获取根CA和多级CA的密钥对?它们是否可信?
ECC的故事: 这里的ECC不是我厂历史上的电商事业群,而是椭圆曲线加密算法。ECC据说被NSA(美国安全局)操作,在算法中设置了后门。...不过好在不是只有一种椭圆曲线,而是有无数种,不同的曲线有不同的优点和缺点,只是其中由NIST(美国标准和技术研究署)推荐的曲线被怀疑设置了后门。 ...ZMQ使用的椭圆曲线算法是Curve25519 ,它有开源实现而且没有专利保护。zmq用了长度为256bits的密钥,强度相当于RSA 3072比特的密钥长度。 ...非常简单地讲,当A与B在一个不受信任的网络中通讯前,A和B先生成一对公私钥,并且A和B通过某个完全的渠道事先知道对方的公钥,然后A和B在握手阶段协商出一个双方公知的私钥供加密接下来的通讯。 ...在实战过程中,发现一个czmq4库的bug,如果一个zmq socket作为server端并使用curve鉴权,就必须调用bind(),而不能调connect(),否则进程会崩溃。
图片第一部分是密钥交换算法,常见的有DH、DHE、ECDHE等,目前支持前向加密的只有ECDHE和DHE算法,很多安全扫描里面提到的不支持AEAD就是在说这个套件。...ECDHE 算法是在 DHE 算法的基础上利用了 ECC 椭圆曲线特性,可以用更少的计算量计算出公钥,以及最终的会话密钥。...密钥交换模式是ECDHE的话,由于ECDHE的密钥交换过程无需证书的实质性参与,所以RSA证书也可以和ECDHE一起工作;ECDHE的密钥交换方式可以参考我的另一篇博客;交换过程主要是client和server...按照协商好的椭圆曲线去生成会话密钥,无需使用证书)如果加密套件选择ECDH_RSA或者ECDH_ECDSA时:由于ECDH加密套件默认表明了握手需要ECC证书(即ECC证书的公钥充当握手中server...key exchange中的公钥,证书的私钥同样也是握手过程中的私钥,握手过程不需要server key exchange)第二部分_RSA或者_ECDSA表明的是想要的服务器证书签名类型。
另一方面,ECC依赖于将随机椭圆曲线解析为离散对数函数的不可能性,这个问题被称为“椭圆曲线离散对数问题”或ECDLP。...简而言之,ECC提供具有类似安全性的较小密钥,这反过来转化为更高的加密性能,适用于SSL等数字签名。 本教程和所有ECC证书都依赖于椭圆曲线协议,该协议可以有多种形式。...我们需要将私钥和证书存储在一个容易记忆的位置,因此我们需要创建一个新目录。 sudo mkdir /etc/nginx/ssl 第3步 - 创建自签名ECC证书 在本节中,我们将申请新证书并签名。...首先,使用OpenSSL 的ecparam工具生成ECC私钥。 该out标志将输出定向到文件。在本教程中,我们将在/etc/nginx/ssl/nginx.key中保存密钥。...sudo chmod 600 /etc/nginx/ssl/* 您的证书和保护它的私钥现在可以进行设置了。 第4步 - 设置证书 在本节中,我们将使用密钥和证书配置Nginx虚拟主机。
(6)Alice对Bob发送的点bG计算其在椭圆曲线上a倍的点。Alice在椭圆曲线上计算a(bG)=abG,它就是Alice和Bob的共享密钥。...(7)Bob对Alice发送的点aG计算其在椭圆曲线上b倍的点。Bob在椭圆曲线上计算b(aG)=abG,它就是Alice和Bob的共享密钥。...椭圆加密—椭圆曲线对称加密方案 该方法主要采用Diffie-Hellman密钥交换算法,使用非对称密钥进行对称加解密。下面是获取共享对称密钥的过程: (1)Alice向Bob发送点G。...(6)Alice对Bob发送的点bG计算其在椭圆曲线上a倍的点。Alice在椭圆曲线上计算a(bG)=abG,它就是Alice和Bob的共享密钥。...(7)Bob对Alice发送的点aG计算其在椭圆曲线上b倍的点。Bob在椭圆曲线上计算b(aG)=abG,它就是Alice和Bob的共享密钥。
一、AI 讲解 1.1 概念讲解 信息加密技术是信息安全中的核心技术之一,它通过数学算法将原始信息转换成无法直接读懂的密文,以保护信息的安全。信息加密技术主要分为对称加密和非对称加密两大类。...常见的非对称加密算法包括RSA、ECC(椭圆曲线加密)和ElGamal等。 1.2 通俗讲解 好的,我们可以用一种通俗易懂的方式来理解对称加密和非对称加密的区别,就像是我们日常使用的两种不同的锁。...数字签名 在非对称加密中,用于加密的密钥是什么? A. 公钥 B. 私钥 C. 会话密钥 D. 数字证书 下列哪种算法不是对称加密算法? A. DES B. RSA C. 3DES D....密钥的安全交换 C. 哈希算法验证 D. 数字证书的颁发 RSA算法中,公钥和私钥是如何生成的? A. 通过对大质数的乘积进行加密计算 B. 使用相同的算法但不同的密钥 C....生成的密钥长度较短,安全性较高 解析:ECC(椭圆曲线加密)算法的一个显著特点是在相同安全级别下,它能够使用更短的密钥长度达到与其他非对称加密算法相同的安全强度,因而计算效率更高,安全性较高。
领取专属 10元无门槛券
手把手带您无忧上云