173 2438 5004
KEROS加密芯片——品牌直销 | 免费样品 | 技术支持
当前位置:网站首页 > 资讯中心 正文 资讯中心

非对称加密私钥如何给用户

keros@mark 2022-10-15 资讯中心

很高兴和大家一起分享非对称加密私钥如何给用户的知识,希望对各位有所帮助。

本文目录一览

非对称加密的主要算法有哪些?

非对称加密(公钥加密):指加密和解密使用不同密钥的加密算法,也称为公私钥加密。假设两个用户要加密交换数据,双方交换公钥,使用时一方用对方的公钥加密,另一方即可用自己的私钥解密。如果企业中有n个用户,企业需要生成n对密钥,并分发n个公钥。假设A用B的公钥加密消息,用A的私钥签名,B接到消息后,首先用A的公钥验证签名,确认后用自己的私钥解密消息。由于公钥是可以公开的,用户只要保管好自己的私钥即可,因此加密密钥的分发将变得 十分简单。同时,由于每个用户的私钥是唯一的,其他用户除了可以通过信息发送者的公钥来验证信息的来源是否真实,还可以通过数字签名确保发送者无法否认曾发送过该信息。

非对称加密中私钥是如何得到的?

公钥密码体制的核心思想是:加密和解密采用不同的密钥。这是公钥密码体制和传统的对称密码体制最大的区别。对于传统对称密码而言,密文的安全性完全依赖于 密钥的保密性,一旦密钥泄漏,将毫无保密性可言。但是公钥密码体制彻底改变了这一状况。在公钥密码体制中,公钥是公开的,只有私钥是需要保密的。知道公钥 和密码算法要推测出私钥在计算上是不可行的。这样,只要私钥是安全的,那么加密就是可信的。

显然,对称密码和公钥密码都需要保证密钥的安全,不同之处在于密钥的管理和分发上面。在对称密码中,必须要有一种可靠的手段将加密密钥(同时也是解密密 钥)告诉给解密方;而在公钥密码体制中,这是不需要的。解密方只需要保证自己的私钥的保密性即可,对于公钥,无论是对加密方而言还是对密码分析者而言都是 公开的,故无需考虑采用可靠的通道进行密码分发。这使得密钥管理和密钥分发的难度大大降低了。

加密和解密:发送方利用接收方的公钥对要发送的明文进行加密,接受方利用自己的

私钥进行解密,其中公钥和私钥匙相对的,任何一个作为公钥,则另一个

就为私钥.但是因为非对称加密技术的速度比较慢,所以,一般采用对称

加密技术加密明文,然后用非对称加密技术加密对称密钥,即数字信封 技术.

签名和验证:发送方用特殊的hash算法,由明文中产生固定长度的摘要,然后利用

自己的私钥对形成的摘要进行加密,这个过程就叫签名。接受方利用

发送方的公钥解密被加密的摘要得到结果A,然后对明文也进行hash操

作产生摘要B.最后,把A和B作比较。此方式既可以保证发送方的身份不

可抵赖,又可以保证数据在传输过程中不会被篡改。

首先要分清它们的概念:

加密和认证

首先我们需要区分加密和认证这两个基本概念。

加密是将数据资料加密,使得非法用户即使取得加密过的资料,也无法获取正确的资料内容, 所以数据加密可以保护数据,防止监听攻击。其重点在于数据的安全性。身份认证是用来判断某个身份的真实性,确认身份后,系统才可以依不同的身份给予不同的 权限。其重点在于用户的真实性。两者的侧重点是不同的。

公钥和私钥

其次我们还要了解公钥和私钥的概念和作用。

在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解密。公钥是公开的,不需要保密,而私钥是由个人自己持有,并且必须妥善保管和注意保密。

公钥私钥的原则:

一个公钥对应一个私钥。

密钥对中,让大家都知道的是公钥,不告诉大家,只有自己知道的,是私钥。

如果用其中一个密钥加密数据,则只有对应的那个密钥才可以解密。

如果用其中一个密钥可以进行解密数据,则该数据必然是对应的那个密钥进行的加密。

非对称密钥密码的主要应用就是公钥加密和公钥认证,而公钥加密的过程和公钥认证的过程是不一样的,下面我就详细讲解一下两者的区别。

事例说明下:

例如:比如有两个用户Alice和Bob,Alice想把一段明文通过双钥加密的技术发送给Bob,Bob有一对公钥和私钥,那么加密解密的过程如下:

Bob将他的公开密钥传送给Alice。

Alice用Bob的公开密钥加密她的消息,然后传送给Bob。

Bob用他的私人密钥解密Alice的消息。

那么Bob怎么可以辨认Alice是不是真人还是冒充的.我们只要和上面的例子方法相反就可以了.

Alice用她的私人密钥对文件加密,从而对文件签名。

Alice将签名的文件传送给Bob。

Bob用Alice的公钥解密文件,从而验证签名。

通过例子大家应该有所了解吧!

什么是非对称加密?

MD5

\PGP这类的都属于非对称加密.就是加密简单,解密(破解)困难.

数字证书

原文链接

日常工作中,偶尔会遇到证书相关的问题,比如浏览器提示证书不可信、证书过期等。实际上,我们访问大多数网站时,数字证书都在背后默默的工作。那么,什么是数字证书?数字证书又是如何工作的呢?

日常访问网站其实就是信息传递交换的过程。举例来说,访问购物网站,会将账号、密码发送给购物网站,购物网站收到后,会返回给我们用户信息、网站页面等内容。在此过程中,用户的账号密码、购物网站的网页内容,这些都是信息。包括后续的用户付款给购物网站,购物网站返回订单号这些,也都是信息传递交换。

既然涉及到信息传递交换,那么有一个问题就不得不考虑,就是信息的安全性。所谓信息的安全性,可以理解成通信双方交换的信息,不被第三方截获,或者即使被第三方截获,但是信息是加密的,第三方也破译不出原始信息。

其实这个过程我们在电视剧中经常看到,首先截获电文,然后破译电文密码。

互联网同样也面临着信息安全的问题,解决的方法也很简单,就是对信息加密。

对信息加密的方法可以分为对称加密和非对称加密两类,每类又有多个算法支持实现。

加密算法对应有专门的密码学,不做太多介绍,这里介绍下两种方法的区别。

对称加密:即消息发送方、消息接收方两者用的密钥是相同的。消息发送方用密钥对信息加密,消息接收方用同样的密钥对信息解密。

对称加密所面临的一个问题是:在双方通信之前,如何将密钥传递给对方,且不被第三方截获?

非对称加密:即消息发送方、消息接收方两者用的密钥是不同的,密钥分为两个,分别是公钥和私钥。以购物网站为例,购物网站使用密码学安全伪随机数生成器生成一对密钥,其中一个为公钥,一个为私钥。私钥由购物网站自己保管,购物网站自己确保私钥不外泄。公钥可以发放给任何用户。在发放公钥的过程中不怕被监听、截获。

用户获得公钥后,发送给购物网站的信息使用公钥进行加密,购物网站接收到信息后,使用私钥进行解密。同理,购物网站发送给用户的信息,使用私钥加密,用户收到后,使用公钥解密。加密和解密使用的密钥不同,这就是非对称加密。

注意:使用非对称加密,用户发给购物网站的信息不怕被截获。因为即使截获,截获者没有购物网站的私钥,也不能够解密出信息,所以信息是安全的。且公钥加密的信息,只有对应的私钥可以解密;私钥加密的信息,只有对应的公钥可以解密。

这里信息不能解密,指的是短时间内不能解密(在数以年计的时间内不能破解)。

通过上面的介绍,非对称加密似乎要比对称加密更安全,那对称加密是不是就完全没用了呢?

其实不然。因为非对称加密逻辑上更复杂,所以其效率要低于对称加密。实际应用中,通常是两种方法结合使用。先使用非对称加密建立安全通道,然后再使用对称加密传递信息。

使用非对称加密已经足以保证信息安全了,为什么还要引入数字证书呢?

考虑一种情况,用户要访问购物网站Xd.com。当用户在搜索引擎中输入"X东",搜索引擎可能会将用户引入到一个钓鱼网站。该钓鱼网站有自己的公钥、私钥,同时假冒"X东"的名义,将公钥返回给了用户。用户此时得到的是钓鱼网站的公钥,但是用户是不知道的。照样将自己的信息通过公钥加密,发给钓鱼网站;同时,钓鱼网站将信息使用私钥加密,发送给用户。

用户使用本地的公钥能够解密网站返回的信息,于是认为自己访问的是真正的购物网站,然后付款,然后就没有然后了。。。。

一段时间之后,用户发现自己被骗了,很生气。。。

这就引出的一个问题:用户如何确认自己所获得的公钥真的是购物网站的公钥呢?由于用户已经被骗过了,即使现在购物网站再三保证,用户也不信任购物网站了。这时候就需要数字证书了。

其实这一点和生活中的例子非常像。生活中交易双方互相不信任时,通常会找一个第三方机构来做担保。虽然交易双方互相不信任,但是交易双方都信任担保结构,于是将钱和物存放在担保机构,由担保机构促进交易完成。

数字证书认证机构(Certificate Authority,简称CA)充当的角色就是担保机构。CA是一个非常权威的角色,无论是网站,还是个人用户,都信任CA,且相信CA的结果。CA有自己的公钥和私钥,私钥自己保管,公钥公开。

还是以购物网站"X东"为例,"X东"生成了公钥和私钥,私钥自己保存,公钥不直接给用户(因为给了用户也不能确认真正的来源),而是将公钥以及公司信息发送给CA。 CA负责核实"X东"的真实身份,如果核实通过,则将公钥、公司信息、到期时间等信息拼在一起,并使用CA自己的公钥加密,发送给购物网站"X东" 。CA发送给购物网站的内容就是数字证书(digital certificate)。

注意上面的内容,CA有责任也有能力负责核实申请证书者的真实身份。如果钓鱼网站想假冒"X东"的身份,申请证书,是不会审核通过的。

购物网站从CA获得了数字证书,当用户访问购物网站时,购物网站不再将自己的公钥发送给用户,而是将从CA获得的数字证书发送给用户。

用户获得数字证书后,使用CA的公钥对数字证书进行解密。注意,因为CA的数量比较少,且CA的公钥都是公开的,所以客户端软件(如浏览器)都已经内置了CA公钥,或者可以动态请求获取、更新CA公钥,因此CA的公钥通常是不能作假的。如果用户使用CA公钥能够解密成功,说明证书中的内容(购物网站的公钥、过期时间等)是可信的,这样就能避免使用了伪造公钥的情况发生。

后续的流程就和上面的一样了,用户通过购物网站的公钥对信息加密,然后发给购物网站,购物网站使用私钥解密;同时,购物网站使用私钥对信息加密,返回给用户,用户使用购物网站的公钥进行解密。保证了信息的加密性,且保证了信息来源的正确性。这样,用户就可以愉快的购物了。

以上就是数字证书的全部内容。

网上很多文章在介绍数字证书时,也一起讲了数字签名。但是我在看这两个知识点时,感觉两者穿插着理解非常容易混轮。

实际上,虽然数字证书和数字签名都是用非对称加密,但是两者的功能是不一样的。数字证书是保证了信息的加密性,数字签名是保证了信息的完整性。

我理解的数字证书和数字签名的工作流程是这样的:首先使用非对称加密创建一条安全通道(这一步用到了数字证书),安全通道建立之后,信息可以明文传递。在传递信息时,在附加上数字签名,保证信息的完整性。两者是工作在不同的阶段。

完。

非对称加密算法 (RSA、DSA、ECC、DH)

非对称加密需要两个密钥:公钥(publickey) 和私钥 (privatekey)。公钥和私钥是一对,如果用公钥对数据加密,那么只能用对应的私钥解密。如果用私钥对数据加密,只能用对应的公钥进行解密。因为加密和解密用的是不同的密钥,所以称为非对称加密。

非对称加密算法的保密性好,它消除了最终用户交换密钥的需要。但是加解密速度要远远慢于对称加密,在某些极端情况下,甚至能比对称加密慢上1000倍。

算法强度复杂、安全性依赖于算法与密钥但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。对称密码体制中只有一种密钥,并且是非公开的,如果要解密就得让对方知道密钥。所以保证其安全性就是保证密钥的安全,而非对称密钥体制有两种密钥,其中一个是公开的,这样就可以不需要像对称密码那样传输对方的密钥了。这样安全性就大了很多。

RSA、Elgamal、背包算法、Rabin、D-H、ECC (椭圆曲线加密算法)。使用最广泛的是 RSA 算法,Elgamal 是另一种常用的非对称加密算法。

收信者是唯一能够解开加密信息的人,因此收信者手里的必须是私钥。发信者手里的是公钥,其它人知道公钥没有关系,因为其它人发来的信息对收信者没有意义。

客户端需要将认证标识传送给服务器,此认证标识 (可能是一个随机数) 其它客户端可以知道,因此需要用私钥加密,客户端保存的是私钥。服务器端保存的是公钥,其它服务器知道公钥没有关系,因为客户端不需要登录其它服务器。

数字签名是为了表明信息没有受到伪造,确实是信息拥有者发出来的,附在信息原文的后面。就像手写的签名一样,具有不可抵赖性和简洁性。

简洁性:对信息原文做哈希运算,得到消息摘要,信息越短加密的耗时越少。

不可抵赖性:信息拥有者要保证签名的唯一性,必须是唯一能够加密消息摘要的人,因此必须用私钥加密 (就像字迹他人无法学会一样),得到签名。如果用公钥,那每个人都可以伪造签名了。

问题起源:对1和3,发信者怎么知道从网上获取的公钥就是真的?没有遭受中间人攻击?

这样就需要第三方机构来保证公钥的合法性,这个第三方机构就是 CA (Certificate Authority),证书中心。

CA 用自己的私钥对信息原文所有者发布的公钥和相关信息进行加密,得出的内容就是数字证书。

信息原文的所有者以后发布信息时,除了带上自己的签名,还带上数字证书,就可以保证信息不被篡改了。信息的接收者先用 CA给的公钥解出信息所有者的公钥,这样可以保证信息所有者的公钥是真正的公钥,然后就能通过该公钥证明数字签名是否真实了。

RSA 是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数组合成私钥。公钥是可发布的供任何人使用,私钥则为自己所有,供解密之用。

A 要把信息发给 B 为例,确定角色:A 为加密者,B 为解密者。首先由 B 随机确定一个 KEY,称之为私钥,将这个 KEY 始终保存在机器 B 中而不发出来;然后,由这个 KEY 计算出另一个 KEY,称之为公钥。这个公钥的特性是几乎不可能通过它自身计算出生成它的私钥。接下来通过网络把这个公钥传给 A,A 收到公钥后,利用公钥对信息加密,并把密文通过网络发送到 B,最后 B 利用已知的私钥,就能对密文进行解码了。以上就是 RSA 算法的工作流程。

由于进行的都是大数计算,使得 RSA 最快的情况也比 DES 慢上好几倍,无论是软件还是硬件实现。速度一直是 RSA 的缺陷。一般来说只用于少量数据加密。RSA 的速度是对应同样安全级别的对称密码算法的1/1000左右。

比起 DES 和其它对称算法来说,RSA 要慢得多。实际上一般使用一种对称算法来加密信息,然后用 RSA 来加密比较短的公钥,然后将用 RSA 加密的公钥和用对称算法加密的消息发送给接收方。

这样一来对随机数的要求就更高了,尤其对产生对称密码的要求非常高,否则的话可以越过 RSA 来直接攻击对称密码。

和其它加密过程一样,对 RSA 来说分配公钥的过程是非常重要的。分配公钥的过程必须能够抵挡中间人攻击。假设 A 交给 B 一个公钥,并使 B 相信这是A 的公钥,并且 C 可以截下 A 和 B 之间的信息传递,那么 C 可以将自己的公钥传给 B,B 以为这是 A 的公钥。C 可以将所有 B 传递给 A 的消息截下来,将这个消息用自己的密钥解密,读这个消息,然后将这个消息再用 A 的公钥加密后传给 A。理论上 A 和 B 都不会发现 C 在偷听它们的消息,今天人们一般用数字认证来防止这样的攻击。

(1) 针对 RSA 最流行的攻击一般是基于大数因数分解。1999年,RSA-155 (512 bits) 被成功分解,花了五个月时间(约8000 MIPS 年)和224 CPU hours 在一台有3.2G 中央内存的 Cray C916计算机上完成。

RSA-158 表示如下:

2009年12月12日,编号为 RSA-768 (768 bits, 232 digits) 数也被成功分解。这一事件威胁了现通行的1024-bit 密钥的安全性,普遍认为用户应尽快升级到2048-bit 或以上。

RSA-768表示如下:

(2) 秀尔算法

量子计算里的秀尔算法能使穷举的效率大大的提高。由于 RSA 算法是基于大数分解 (无法抵抗穷举攻击),因此在未来量子计算能对 RSA 算法构成较大的威胁。一个拥有 N 量子位的量子计算机,每次可进行2^N 次运算,理论上讲,密钥为1024位长的 RSA 算法,用一台512量子比特位的量子计算机在1秒内即可破解。

DSA (Digital Signature Algorithm) 是 Schnorr 和 ElGamal 签名算法的变种,被美国 NIST 作为 DSS (DigitalSignature Standard)。 DSA 是基于整数有限域离散对数难题的。

简单的说,这是一种更高级的验证方式,用作数字签名。不单单只有公钥、私钥,还有数字签名。私钥加密生成数字签名,公钥验证数据及签名,如果数据和签名不匹配则认为验证失败。数字签名的作用就是校验数据在传输过程中不被修改,数字签名,是单向加密的升级。

椭圆加密算法(ECC)是一种公钥加密算法,最初由 Koblitz 和 Miller 两人于1985年提出,其数学基础是利用椭圆曲线上的有理点构成 Abel 加法群上椭圆离散对数的计算困难性。公钥密码体制根据其所依据的难题一般分为三类:大整数分解问题类、离散对数问题类、椭圆曲线类。有时也把椭圆曲线类归为离散对数类。

ECC 的主要优势是在某些情况下它比其他的方法使用更小的密钥 (比如 RSA),提供相当的或更高等级的安全。ECC 的另一个优势是可以定义群之间的双线性映射,基于 Weil 对或是 Tate 对;双线性映射已经在密码学中发现了大量的应用,例如基于身份的加密。不过一个缺点是加密和解密操作的实现比其他机制花费的时间长。

ECC 被广泛认为是在给定密钥长度的情况下,最强大的非对称算法,因此在对带宽要求十分紧的连接中会十分有用。

比特币钱包公钥的生成使用了椭圆曲线算法,通过椭圆曲线乘法可以从私钥计算得到公钥, 这是不可逆转的过程。

Java 中 Chipher、Signature、KeyPairGenerator、KeyAgreement、SecretKey 均不支持 ECC 算法。

DH,全称为"Diffie-Hellman",它是一种确保共享 KEY 安全穿越不安全网络的方法,也就是常说的密钥一致协议。由公开密钥密码体制的奠基人 Diffie 和 Hellman 所提出的一种思想。简单的说就是允许两名用户在公开媒体上交换信息以生成"一致"的、可以共享的密钥。也就是由甲方产出一对密钥 (公钥、私钥),乙方依照甲方公钥产生乙方密钥对 (公钥、私钥)。

以此为基线,作为数据传输保密基础,同时双方使用同一种对称加密算法构建本地密钥 (SecretKey) 对数据加密。这样,在互通了本地密钥 (SecretKey) 算法后,甲乙双方公开自己的公钥,使用对方的公钥和刚才产生的私钥加密数据,同时可以使用对方的公钥和自己的私钥对数据解密。不单单是甲乙双方两方,可以扩展为多方共享数据通讯,这样就完成了网络交互数据的安全通讯。

具体例子可以移步到这篇文章: 非对称密码之DH密钥交换算法

参考:

数字签名,数字证书,SSL,https是什么关系

SSL证书属于数字证书的一种,需要进行数字证书进行签名认证,SSL证书主要用于HTTPS加密协议。

产品的开发快则一个月,慢则一年,那么如何杜绝市面上各种山寨也成为了我们必须要关注的问题,加密芯片可以做到这点,在保障开发者权益的同时也保护了消费者权益,KEROS加密芯片作为该领域的领头者,一直在尽力贡献一份力。特点如下:接口:标准I2C协议接口;算法: 标准aes256 / KAS算法;特殊接口:Random Stream Cipher for Interface;工作温度:工业级 -40℃ ~+85℃;频率:400Khz;存储:2K字节EEPROM(可选);电压:1.8V~3.6V;封装:SOT23-6,SOP8,TDFN-6。非对称加密私钥如何给用户的介绍就聊到这里吧,感谢你花时间阅读本站内容,谢谢。

本文标签:非对称加密私钥如何给用户

产品列表
产品封装
友情链接