公钥加密算法
- 格式:docx
- 大小:165.15 KB
- 文档页数:2
公钥密码算法
公钥密码算法是一种非对称加密算法,它使用一对公钥和私钥来加密和解密信息。
公钥密码算法的基本原理是:用户A将
要发送的信息使用用户B的公钥进行加密,然后发送给用户B,用户B收到信息后,使用自己的私钥进行解密,从而获得
原始信息。
公钥密码算法的安全性主要取决于公钥和私钥的安全性,因此,在使用公钥密码算法之前,需要先生成公钥和私钥。
一般来说,生成公钥和私钥的过程可以分为以下几个步骤:
1. 选择一个大质数p和一个小质数q,并计算出n=pq;
2. 选择一个大于1小于n的整数e,使得e与(p-1)(q-1)互质;
3. 计算出d,使得ed=1 mod (p-1)(q-1);
4. 将公钥(n,e)和私钥(n,d)发布出去。
在使用公钥密码算法进行加密时,可以使用以下步骤:
1. 将要发送的信息m转换成一个整数M,使得0<M<n;
2. 计算出密文C,C=M^e mod n;
3. 将密文C发送给接收方。
在使用公钥密码算法进行解密时,可以使用以下步骤:
1. 接收方收到密文C后,计算出明文M,M=C^d mod n;
2. 将明文M转换成原始信息m。
公钥密码算法的安全性取决于公钥和私钥的安全性,因此,在使用公钥密码算法时,应该采取有效的措施来保护公钥和私钥,以防止被攻击者破解。
例如,可以采用数字签名技术来验证公钥和私钥的真实性,以及采用加密技术来保护公钥和私钥,以防止被攻击者窃取。
公钥密码算法公钥密码算法是现代密码体系最通用的加密算法,称为非对称加密方式,公钥和私钥总是成对出现的,用公钥加密则私钥可以用来解密,或者反过来。
标准的RSA的加密算法利用的是大数质因数分解困难的特点,其数学原理十分简单。
{(XQ−1)P−1≡1(modP)(XP−1)Q−1≡1(modQ)⇒X(P−1)×(Q −1)≡1(modPQ)⇒XM≡1(modN)⇒XE×D≡X(modN)⇒YD≡X(mod N)其中密文Y、公钥E和大数N都是公开的,但是没有私钥D就无法得到X,破解需要对N进行质因数分解反推出P和Q,因为大数质因数分解需要穷举,因此密码在很长的时限内都是安全的。
从原理可以看出,加密和解密是完全对称的,如果用私钥加密,而用公钥解密的过程称为电子签名,因为别人没有私钥,就无法伪造签名者的消息和身份信息了。
一般网银和网上交易等金融相关的密码体系采用加密和电子签名相结合的方式,对用户密码用银行等服务端的公钥加密后再和用户名等信息一起用用户的私钥进行电子签名,服务端再分别用用户的公钥和银行的私钥解密,用数字证书的方式传递公钥。
而一般的网站登录多采用MD5值来存储和比对密码,虽然理论上从MD5值无法得到密码的明文,但仍然存在撞库的风险,黑客收集普通人常用的一些密码组合转换为MD5值来反推,因此尽量不要使用电话号码、名字缩写、生日组合之类的简单密码,网银密码用单独的密码不要和其他网站的密码一样。
RSA是目前最常用的公钥加密算法,但并没有从理论上证明破译RSA的难度与大数分解难度等价,有数学家认为RSA密码存在漏洞,而且在计算能力越来越强的计算机面前,仍然需要寻找更安全的加密方式。
ECC(Elliptic Curves Cryptography椭圆曲线密码)也是一种公钥密码算法,ECC能用更短的密钥长度来提供同等或更高的安全级别,其数学原理比较复杂,简单的说是利用椭圆曲线上点群的离散对数问题的困难性(并不懂这句话的意思),有机会再慢慢学习吧。
公钥加密的原理
公钥加密是一种安全的加密方式,它的原理是通过使用两个相关的密钥来加密和解密数据。
其中一个密钥是公开的,称为公钥,另一个密钥是私密的,称为私钥。
公钥可以自由地分发,而私钥则必须保持在安全的地方。
公钥加密的过程如下:
1. 接收者生成一对密钥,一个是公钥,另一个是私钥。
2. 发送者使用接收者的公钥来加密数据。
3. 接收者使用自己的私钥来解密数据。
4. 公钥加密保证了数据的私密性,因为只有接收者知道自己的私钥,其他人无法解密数据。
公钥加密的安全性基于数学问题的困难性,例如大整数的因数分解问题和离散对数问题。
公钥加密算法主要有RSA、DSA、ECC等。
RSA是目前应用最广泛的公钥加密算法之一,它采用大素数的乘积作
为模数,并选取与模数互质的公钥和私钥。
RSA的加密和解密速度比较慢,但是安全性较高。
另外,RSA还可以用于数字签名。
DSA是一种数字签名算法,它使用离散对数问题来保证数字签名的真实性。
与RSA相比,DSA的加密速度较快,但是安全性稍低。
ECC是一种基于椭圆曲线的公钥加密算法,它与RSA和DSA相比既具有更高的安全性,也更节省存储空间和计算资源,因此被广泛应用于移动设备和物联网等环境中。
总之,公钥加密是一种安全可靠的加密方式,它可以保障数据的私密性和完整性,是当今信息安全领域中不可或缺的一部分。
RSA公钥密码算法RSA算法是一种非对称加密算法,是目前最广泛应用的公钥密码体制之一。
RSA算法是由 Rivest、Shamir 和 Adleman 三人在1977年提出的,它是基于对大数进行因数分解的困难性的数论问题而设计的。
RSA算法可以用于加密、签名和密钥交换等多种应用。
RSA算法的原理是很简单的,它采用一对密钥,分别为公钥和私钥。
公钥用于加密数据,私钥用于解密数据。
RSA算法的安全性基于一个数论问题,即将两个大质数相乘很容易,但将一个大数分解为两个质数却极为困难。
在RSA算法中,公钥是由两个质数的乘积N和一个公共指数e组成。
私钥是由质数的乘积N和一个私有指数d组成。
公钥可以公开,而私钥需要保密。
RSA算法的加密过程如下:假设要加密的数据为M,加密后的数据为C,公钥为(N,e)。
将M转化为一个数m,并满足0<=m<N。
然后,通过计算C = m^e mod N来进行加密,即对m 的e次方进行模N运算。
最终得到的C就是加密后的数据。
RSA算法的应用非常广泛。
最常见的应用是在网络通信中的安全传输,比如在网上购物、网银转账等过程中,常常会使用RSA算法来加密用户的敏感信息,以保护用户的隐私和安全。
RSA算法还可以用于数字签名,用来验证数据的完整性和真实性。
在密钥交换中,RSA算法也是一种常用的方式,可以安全地传输对称加密算法的密钥。
RSA算法也存在一些缺点。
RSA算法的加解密速度较慢,尤其是当加密的数据较大时,效率更低。
RSA算法的安全性依赖于大质数的选取和密钥的保密性,如果质数选取不当或者私钥泄露,都会导致整个系统的安全性受到威胁。
RSA算法是一种非对称加密算法,通过对大数进行因数分解的困难性来实现安全加密和解密。
它具有广泛的应用领域,比如网络通信、数字签名和密钥交换等。
RSA算法的安全性和效率问题需要仔细考虑和解决。
公钥和私钥加密算法随着互联网的发展,数据传输的安全性变得越来越重要。
在信息传输过程中,保护数据的机密性和完整性是至关重要的。
而公钥和私钥加密算法成为了一种常用的加密方法。
公钥和私钥加密算法是一种非对称加密算法,它使用一对密钥:公钥和私钥。
公钥可以被任何人获得,用于加密数据;而私钥只能由特定的个体持有,用于解密数据。
这种加密方式的核心思想是使用两个不同的密钥,一个用于加密,另一个用于解密,从而确保数据的安全性。
在公钥和私钥加密算法中,公钥是公开的,可以被任何人获取。
它可以用于加密数据,但无法用于解密。
私钥则是保密的,只有密钥持有者才能拥有。
私钥用于解密由公钥加密的数据。
这种加密方式的独特之处在于,公钥和私钥是一对密钥,它们之间存在着特殊的数学关系。
公钥和私钥加密算法的应用广泛,其中最著名的就是RSA算法。
RSA 算法是一种非对称加密算法,它是由三位数学家Rivest、Shamir和Adleman于1977年提出的。
RSA算法的安全性基于两个数学难题:大数分解和模指数运算。
在RSA算法中,首先生成一对密钥:公钥和私钥。
公钥由两个数构成:一个是模数n,另一个是指数e;私钥也由两个数构成:一个是模数n,另一个是指数d。
其中,模数n是两个大质数p和q的乘积,而指数e和d是与(p-1)(q-1)互质的数。
公钥可以公开,而私钥必须保密。
加密时,使用公钥对数据进行加密。
具体的加密过程是将数据转化为一个整数m,然后计算c ≡ m^e (mod n)。
解密时,使用私钥对密文进行解密。
具体的解密过程是计算m ≡ c^d (mod n),从而得到原始数据。
公钥和私钥加密算法具有许多优点。
首先,它提供了安全可靠的加密方法。
由于加密和解密使用了不同的密钥,攻击者无法通过已知的密钥推导出私钥,从而保证了数据的安全性。
其次,公钥和私钥加密算法具有高度的灵活性。
密钥的生成过程简单,可以随时生成新的密钥对。
此外,公钥和私钥加密算法还支持数字签名和身份验证等功能。
RSA公钥密码算法RSA公钥密码算法是一种非对称密码算法,由三位数学家Rivest、Shamir和Adleman于1977年提出,它利用了两个大素数的乘积的因子难以分解的特性来确保数据的安全性。
RSA算法一直被广泛应用于加密通信、数字签名和身份认证等领域,在信息安全领域具有非常重要的地位。
RSA算法的安全性基于大数分解猜想,该猜想认为任何一个大数都可以分解成几个素数的乘积。
目前为止,尚未有有效的算法可以在合理的时间内对大数进行分解,因此RSA算法在理论上是安全的。
这种安全性使得RSA算法成为了目前最为安全和可靠的非对称密码算法之一。
RSA算法的原理比较简单,它使用了两个密钥来进行加密和解密操作,分别是公钥和私钥。
公钥用于加密数据,私钥用于解密数据,这种设计使得数据的发送方和接收方都可以安全地进行通信而不必担心数据的泄露。
简单来说,RSA算法的流程如下:1. 选择两个大素数p和q,并计算它们的乘积n,n=pq。
2. 计算n的欧拉函数φ(n)=(p-1)(q-1)。
3. 选择一个整数e,使得1<e<φ(n),并且e与φ(n)互质。
4. 计算e的模φ(n)的乘法逆元d,即de≡1(mod φ(n))。
5. 公钥是(n, e),私钥是(n, d)。
6. 加密数据m时,使用公钥(n, e)进行加密运算后得到密文c,c≡m^e(mod n)。
7. 解密密文c时,使用私钥(n, d)进行解密运算后得到明文m,m≡c^d(mod n)。
通过上述流程,我们可以看到RSA算法的加密和解密操作分别使用了公钥和私钥,这样就保证了数据的安全性。
RSA算法还可以用于数字签名,可以通过私钥对数据进行签名,然后可以由持有公钥的人验证签名的有效性,这样就可以确保数据的完整性和真实性。
除了加密通信和数字签名外,RSA算法还可以用于身份认证,因为私钥是唯一的,可以用于证明数据的来源身份。
RSA算法还可以用于密钥交换,可以通过RSA算法协商一个对称密钥,然后使用对称密钥进行加密通信,这样可以提高数据传输的效率和安全性。
密码基础知识(2)以RSA为例说明加密、解密、签名、验签⼀、RSA加密简介 RSA加密是⼀种⾮对称加密。
是由⼀对密钥来进⾏加解密的过程,分别称为公钥和私钥。
具体查看⼆,公钥加密算法和签名算法我们从公钥加密算法和签名算法的定义出发,⽤⽐较规范的语⾔来描述这⼀算法,以RSA为例。
2.1,RSA公钥加密体制RSA公钥加密体质包含如下3个算法:KeyGen(密钥⽣成算法),Encrypt(加密算法)以及Decrypt(解密算法)。
1)密钥⽣成算法以安全常数作为输⼊,输出⼀个公钥PK,和⼀个私钥SK。
安全常数⽤于确定这个加密算法的安全性有多⾼,⼀般以加密算法使⽤的质数p的⼤⼩有关。
越⼤,质数p⼀般越⼤,保证体制有更⾼的安全性。
在RSA中,密钥⽣成算法如下:算法⾸先随机产⽣两个不同⼤质数p和q,计算N=pq。
随后,算法计算欧拉函数接下来,算法随机选择⼀个⼩于的整数e,并计算e关于的模反元素d。
最后,公钥为PK=(N, e),私钥为SK=(N, d)。
2)加密算法以公钥PK和待加密的消息M作为输⼊,输出密⽂CT。
在RSA中,加密算法如下:算法直接输出密⽂为3)解密算法以私钥SK和密⽂CT作为输⼊,输出消息M。
在RSA中,解密算法如下:算法直接输出明⽂为。
由于e和d在下互逆,因此我们有: 所以,从算法描述中我们也可以看出:公钥⽤于对数据进⾏加密,私钥⽤于对数据进⾏解密。
当然了,这个也可以很直观的理解:公钥就是公开的密钥,其公开了⼤家才能⽤它来加密数据。
私钥是私有的密钥,谁有这个密钥才能够解密密⽂。
否则⼤家都能看到私钥,就都能解密,那不就乱套了。
2.2,RSA签名体制签名体制同样包含3个算法:KeyGen(密钥⽣成算法),Sign(签名算法),Verify(验证算法)。
1)密钥⽣成算法同样以安全常数作为输⼊,输出⼀个公钥PK和⼀个私钥SK。
在RSA签名中,密钥⽣成算法与加密算法完全相同。
2)签名算法以私钥SK和待签名的消息M作为输⼊,输出签名。
RSA加密解密算法RSA(Rivest–Shamir–Adleman)加密算法是一种非对称加密算法,也是目前最常用的公钥加密算法之一、它是由Ron Rivest、Adi Shamir 和Leonard Adleman于1977年共同开发的,取名来自他们三个人的姓氏的首字母。
RSA算法的安全性建立在两个大素数难因分解的理论上,即若一个非常大的整数,其因数分解为两个素数的乘积,那么要分解这个大整数就很困难。
该算法的基本原理是选取两个大素数p和q,并计算得到N=p*q,将N作为公钥的一部分。
公开N和一个加密指数e,而私钥则包含了p、q 和一个解密指数d。
加密时,消息经过加密指数e进行加密得到密文,解密时利用解密指数d对密文进行解密。
只有知道私钥的人才能解密得到原始消息。
具体的加密过程如下:1.选择两个不同的大素数p和q。
2.计算N=p*q。
3.计算φ(N)=(p-1)*(q-1),φ(N)即N的欧拉函数值。
4.选择一个与φ(N)互质的加密指数e,其中1<e<φ(N)。
5.计算解密指数d,使得(e*d)%φ(N)=16.公钥为(e,N),私钥为(d,N)。
7.将明文m转化为整数m,确保m小于N。
8.加密密文c=m^e%N。
9.解密明文m=c^d%N。
RSA算法的安全性取决于分解大整数的难度,目前没有快速的算法能够在合理的时间内分解大整数。
因此,只要选择足够大的素数p和q,RSA算法就足够安全。
RSA算法在实际应用中起到了重要的作用。
它广泛应用于数字签名、密钥交换、加密通信等领域。
它通过使用不同的指数对数据进行加密和解密,实现了安全的通信。
同时,RSA算法也具有可逆性,在现实世界中起到了非常重要的作用。
总结来说,RSA加密算法是一种非对称加密算法,它的安全性基于大整数的因数分解难度。
它广泛应用于各个领域,通过使用公钥和私钥对数据进行加密和解密,实现了安全的通信。
尽管它的运算速度较慢,但是在很多场景下,RSA算法仍然是最安全和最实用的加密算法之一。
公钥和私钥加密算法随着互联网的快速发展,信息安全问题日益突出。
在网络通信中,数据的加密是一种重要的手段,用于保护数据的机密性和完整性。
公钥和私钥加密算法是一种常用的加密方法,它通过使用不同的密钥来实现加密和解密操作,从而保障数据的安全性。
公钥和私钥加密算法是一种非对称加密算法,它使用一对密钥,即公钥和私钥。
其中,公钥用于加密数据,私钥用于解密数据。
公钥和私钥是一对相关联的密钥,它们之间存在着特殊的数学关系。
在公钥和私钥加密算法中,公钥是公开的,可以自由传播给任何人。
而私钥则是保密的,只有拥有私钥的人才能解密由公钥加密的数据。
这种非对称的加密方式,使得数据的发送方和接收方可以安全地进行通信,而无需事先共享密钥。
公钥和私钥加密算法的工作原理如下:1. 生成密钥对:在使用公钥和私钥加密算法之前,首先需要生成一对密钥。
密钥对的生成通常包括以下步骤:随机选择两个大素数p 和q,计算 n = p*q,并计算φ(n) = (p-1)*(q-1),选择一个整数 e,满足 1 < e < φ(n) 且 e 与φ(n)互质,计算 d = e^-1 mod φ(n),则 (e, n) 组成公钥,(d, n) 组成私钥。
2. 加密操作:发送方使用接收方的公钥对数据进行加密。
加密过程通常包括以下步骤:将数据转化为整数 m,满足 0 <= m < n,计算密文 c = m^e mod n。
3. 解密操作:接收方使用私钥对密文进行解密。
解密过程通常包括以下步骤:计算明文 m = c^d mod n,将整数 m 转化为原始数据。
公钥和私钥加密算法的安全性建立在数论的困难问题上,如大整数的因子分解问题和离散对数问题。
这些问题在当前的计算能力下是非常困难的,因此公钥和私钥加密算法被广泛应用于实际的信息安全领域。
公钥和私钥加密算法在实际应用中有许多优点:1. 安全性高:公钥和私钥加密算法的安全性基于数论的困难问题,使得它具有较高的抵抗力,难以被破解。
公钥加密算法公钥加密算法,是一种现代密码学中常用的算法。
它的基本理念是利用一对密钥:公钥(pubkey)和私钥(privkey),其中公钥可以安全地传输给任何人,而私钥则只有持有人知道。
这意味着任何人都可以使用公钥进行加密,但只有私钥持有人才能解密。
下面将具体讨论公钥加密算法的原理以及它在实际中的应用。
公钥加密算法的基本原理是利用数学上难以解的计算问题,如质因数分解和离散对数,其中最著名的公钥加密算法是RSA算法。
它是由三位数学家Rivest、Shamir和Adleman发明的,因此得名RSA算法。
RSA算法的具体实现分为三个步骤:1.密钥生成:该步骤基于数学上难以解的计算问题,生成一对公钥和私钥。
2.加密:使用公钥对明文进行加密,生成密文。
由于公钥不需要保密,因此任何人都可以使用公钥对明文进行加密。
3.解密:使用私钥对密文进行解密,生成明文。
由于私钥只有私钥持有人知道,因此只有私钥持有人才能对密文进行解密。
公钥加密算法在实际中有很多应用,如:1.数字签名:数字签名是一种用于验证文档的真实性和完整性的技术。
它基于公钥加密算法,使用私钥对文档进行签名,并将签名公布给所有人。
当文档传输到接收方后,接收方使用公钥对签名进行验证,以确保文档是真实和完整的。
2.电子商务:公钥加密算法在电子商务中广泛应用。
例如,在网上购物时,用户可以使用卖家的公钥对信用卡号等敏感信息进行加密,确保交易安全。
除了RSA算法之外,还有其他公钥加密算法,如椭圆曲线加密算法(ECC)、DSA算法等,它们各有特点和应用场景。
总之,公钥加密算法是现代密码学中不可或缺的一部分,其应用广泛且不断发展创新。
对于保障网络安全和保护个人隐私都具有十分重要的意义。
paillier 加密算法原理详解 paillier 加密算法是⼀种公钥加密算法,基于复合剩余类的困难问题。
满⾜加法同态,即密⽂相乘等于明⽂相加:D(E(m 1)·E(m 2))=m 1+m 2。
这⾥详细介绍其加密解密是如何推导的,需要具备数论、代数系统、模运算的相关知识,同时理解起来可能需要多阅读⼏遍并加以思考。
先将密钥⽣成和加解密过程罗列便于直观看 截图来源于:加密过程 在进⾏加解密之前,必须先产⽣可以⽤来加密的公钥n 和g 。
n 是两个⼤⼩相近的两个⼤素数的乘积:n=p·q 。
g 是ℤ_{n^{2}}中的半随机数,同时g 的阶必须在ℤ^{*}_{n^{2}}中并且能被n 整除。
由于g 必须符合⼀些特殊性质(我们将在解密部分提出)所以ℤ^{*}_{n^{2}}中会有很少⼀部分元素不能⽤作g ,意味着g 是⼀个半随机数。
为了简单计算,我们先选取两个⼩素数p=7,q=11计算得到n=p·q=77。
从ℤ^{*}_{n^{2}}中选择g (g 的阶必须是ℤ^{*}_{n^{2}}中元素并且是n 的倍数。
除此之外,g 需要满⾜的另⼀个性质将会在解密时详细描述),在这⾥我们先选择5652作为g 。
因为g 模n 2的阶是2310且是77的倍数,并且在ℤ^{*}_{n^{2}}中。
那么g 所需要的包括未清楚定义的所有性质将会被满⾜。
⾄此,我们找到了⽤来实际加解密运算过程的公钥(n ,g )。
随着公钥发布,任何⼈都能使⽤公钥加密数据并将密⽂传给私钥持有者。
整个过程可⽤图⼀表⽰。
计算实例公式明⽂m=42随机数r=23c ≡ (5652)42·(23)77mod 5929≡ (4019)(606) ≡ 4624 mod 5929创建明⽂消息m ,m ∈ℤn 随机选择⾮零整数 r ∈ℤ^{*}_{n}计算密⽂c ≡ g m ·r n mod n 2图1:n = 77, g = 5652时paillier 系统加密c 是加密信息,私钥持有者解密时⽆需了解r 的值。
ssh公钥算法摘要:1.SSH 公钥算法概述2.SSH 公钥算法的工作原理3.SSH 公钥算法的常见类型4.SSH 公钥算法的应用场景5.SSH 公钥算法的安全性正文:1.SSH 公钥算法概述SSH 公钥算法,全称Secure Shell 公钥算法,是一种加密算法,主要用于在不安全的网络环境中实现安全通信。
SSH 公钥算法基于非对称加密技术,通过一对密钥(公钥和私钥)实现加密和解密数据,以保证数据的完整性和保密性。
2.SSH 公钥算法的工作原理SSH 公钥算法的工作原理主要基于数学上的难题,即大整数因子分解问题。
公钥和私钥是一对相关联的密钥,公钥可以公开,私钥则必须保密。
公钥可以加密数据,私钥可以解密数据。
在传输过程中,发送方使用接收方的公钥加密数据,接收方使用自己的私钥解密数据。
这样就可以保证数据的安全传输。
3.SSH 公钥算法的常见类型SSH 公钥算法主要包括以下几种类型:(1)RSA 算法:RSA 算法是目前应用最广泛的公钥加密算法,其安全性高、性能优越。
RSA 算法基于大整数因子分解问题,具有很强的抗攻击能力。
(2)DSA 算法:DSA 算法是一种数字签名算法,适用于数字签名、密钥协商等场景。
DSA 算法基于离散对数问题,具有较高的安全性。
(3)ECC 算法:ECC 算法是一种基于椭圆曲线密码体系的公钥加密算法,其安全性与RSA 相当,但密钥长度较短,性能更优。
4.SSH 公钥算法的应用场景SSH 公钥算法广泛应用于以下场景:(1)加密通信:SSH 公钥算法可用于加密网络通信,如SSH 协议、HTTPS 协议等,以保证数据的安全传输。
(2)数字签名:SSH 公钥算法可用于数字签名,如电子邮件的数字签名、软件包的数字签名等,以确保数据的完整性和真实性。
(3)密钥协商:SSH 公钥算法可用于密钥协商,如IKE 协议中的密钥协商,以实现安全通信的密钥交换。
5.SSH 公钥算法的安全性SSH 公钥算法具有较高的安全性,主要原因有以下几点:(1)数学难题:SSH 公钥算法基于数学难题,如大整数因子分解问题、离散对数问题等,这些数学难题目前尚无有效的破解方法。
公钥加密算法
一.简介
公钥加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。
公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。
因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。
图1 非对称加密的简化模型
非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。
另一方面,甲方可以使用乙方的公钥对机密信息进行签名后再发送给乙方;乙方再用自己的私匙对数据进行验签。
甲方只能用其专用密钥解密由其公用密钥加密后的任何信息。
非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要。
非对称密码体制的特点:密钥管理简单,算法强度复杂、安全性依赖于算法与密钥;但是由于其算法复杂,而使得加密解密速度没有对称加密解密的速度快。
二.起源
W.Diffie和M.Hellman 1976年在IEEE Trans.on Information刊物上发表了“ New Direction in Cryptography”文章,提出了“非对称密码体制即公开密钥密码体制”的概念,开创了密码学研究的新方向。
三.基本原理
1.A要向B发送信息,A和B都要产生一对用于加密和解密的公钥和私钥。
2.A的私钥保密,A的公钥告诉B;B的私钥保密,B的公钥告诉A。
3.A要给B发送信息时,A用B的公钥加密信息,因为A知道B的公钥。
4.A将这个消息发给B(已经用B的公钥加密消息)。
5.B收到这个消息后,B用自己的私钥解密A的消息。
其他所有收到这个报
文的人都无法解密,因为只有B才有B的私钥。
图2 非对称加密的基本过程
四.主要功能
非对称加密体系不要求通信双方事先传递密钥或有任何约定就能完成保密通信,并且密钥管理方便,可实现数字签名,从而可实现防止假冒和抵赖的安全目标。
因此,非对称加密更适合网络通信中的保密通信要求。
五.代表算法
非对称加密的代表算法有:RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
其中,使用最广泛的是基于大质数分解的RSA算法和基于离散对数问题的Elgamal算法。