快速公钥算法与传统公钥算法相比具有更广泛地应用前景,对快速公钥系统的研究是当前公钥系统研究的一个热点。
目录
公钥算法-定义
公钥算法
不对称加密算法使用两把完全不同但又是完全匹配的一对钥匙—公钥和私钥。在使用不对称加密算法加密文件时,只有使用匹配的一对公钥和私钥,才能完成对明文的加密和解密过程。加密明文时采用公钥加密,解密密文时使用私钥才能完成,而且发信方(加密者)知道收信方的公钥,只有收信方(解密者)才是唯一知道自己私钥的人。不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发信者使用自己的私钥加密信件,收信者使用发信者的公钥解密信件。显然,采用不对称加密算法,收发信双方在通信之前,收信方必须将自己早已随机生成的公钥送给发信方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。
密码术有很长的历史。古代人在没有高速运算设备的条件下想尽了各种方法,也包含了许多巧妙的构思。早在公元前1900年,一个古埃及书写员就在一个铭文中使用了非标准的象形文字,这是人类最早的有记录的密码术。其后,古代人使用的密码术有如把字母表的顺序颠倒过来、进行字母替代,或者用错后一定数目的位置的字母替代前面的字母。其中有些密码术的构思也是十分巧妙的。
现代密码术的划时代突破,是威特菲尔德;迪菲(Whitfield Diffie)和马丁;海尔曼(Martin Hellman)有关公开密钥加密系统的构想,这是在1976年发表的。但威特菲尔德;迪菲和马丁;海尔曼提供的MH背包算法于1984年被破译,因而失去了实际意义。真正有生命力的公开密钥加密系统算法是由隆;里维斯特(Ronald L. Rivest)、阿迪;沙米尔(Adi Shamir)和雷奥纳德;阿德尔曼(Leonard M.Adlemen)在威特菲尔德•迪菲和马丁;海尔曼的论文的启发下,在1977年发明的,这就是沿用至今的RSA算法。它是第一个既能用于数据加密也能用于数字签名的算法。
公钥加密标准(PKCS)是RSA实验室和全球各家安全系统开发商进行合作而开发出的标准。PKCS标准已经被广泛地采纳,而PKCS系列的标准已经成为许多正式和实际标准的一部分,包括ANSI X9、PKIX、SET、S/MIME。
1976 年,Whitfield Diffe 和 Martin Hellman 创建了公钥加密。公钥加密是重大的创新,因为它从根本上改变了加密和解密的过程。
Diffe 和 Hellman 提议使用两个密钥,而不是使用一个共享的密钥。一个密钥(称为“私钥”)是保密的。它只能由一方保存,而不能各方共享。第二个密钥(称为“公钥”)不是保密的,可以广泛共享。这两个密钥(称为“密钥对”)在加密和解密操作中配合使用。密钥对具有特殊的互补关系,从而使每个密钥都只能与密钥对中的另一个密钥配合使用。这一关系将密钥对中的密钥彼此唯一地联系在一起:公钥与其对应的私钥组成一对,并且与其他任何密钥都不关联。
由于公钥和私钥的算法之间存在特殊的数学关系,从而使得这种配对成为可能。密钥对在数学上彼此相关,例如,配合使用密钥对可以实现两次使用对称密钥的效果。密钥必须配合使用:不能使用每个单独的密钥来撤消它自己的操作。这意味着每个单独密钥的操作都是单向操作:不能使用一个密钥来撤消它的操作。此外,设计两个密钥使用的算法时,特意设计无法使用一个密钥确定密钥对中的另一个密钥。因此,不能根据公钥确定出私钥。但是,使得密钥对成为可能的数学原理也使得密钥对具有对称密钥所不具有的一个缺点。这就是,所使用的算法必须足够强大,才能使人们无法通过强行尝试,使用已知的公钥来解密通过它加密的信息。公钥利用数学复杂性以及它的单向特性来弥补它是众所周知的这样一个事实,以防止人们成功地破解使用它编码的信息。
如果将此概念应用于前面的示例,则发件人将使用公钥将纯文本加密成密码。然后,收件人将使用私钥将密码重新解密成纯文本。
由于密钥对中的私钥和公钥之间所存在的特殊关系,因此一个人可以在与许多人交往时使用相同的密钥对,而不必与每个人分别使用不同的密钥。只要私钥是保密的,就可以随意分发公钥,并让人们放心地使用它。使许多人使用同一个密钥对代表着密码学上的一个重大突破,因为它显著降低了密钥管理的需求,大大提高了密码学的可用性。用户可以与任意数目的人员共享一个密钥对,而不必为每个人单独设立一个密钥。
公钥加密是邮件安全中的一个基本要素。如果没有公钥加密,那么是否存在实用的邮件安全解决方案是值得怀疑的,因为在公钥加密出现之前,密钥管理是一件很麻烦的事情。在了解了公钥加密的基本概念之后,接下来便是了解如何借助这些概念来实现邮件安全性。[1]
公钥体系的原理为:用户A有一对密钥对,分为公钥和私钥,这对密钥对是唯一的,是通过对一个巨大的素数进行因数分解所得。当用公钥加密过的信息,只能使用与它配对的私钥来解密,反之亦然,私钥加密码的信息也只能用公钥来解密。这样,A从认证体系生成密钥对后,把它的私钥保存好,把公钥公开出去,当一个用户B要与A通信,又想确保数据安全时,就可以使用A的公钥来加密信息,再把密文传给A,因此这个世界是只有A手中的私钥才能对这个密文进行解密,这样就确保了信息的安全。
事实上,信息加密码只是公钥体系的用途之一,它还有一个用途就是对信息进行签名,防此信息发布者抵赖,和被第三方修改。为什么这种机制可以实现这此功能呢?很简单,还是使用了“公钥加密,只有私钥能解;私钥加密,只有公钥能解”的道理。举例:用户A用自已的私钥对他发出去的信息进行签名(加密),然后发出去,后来他发现他公开的信息对他不利,他就不承认这些信息是他发的,但是他不可能抵赖了,因为这些信息有他的私钥签名,那么,使用他的公钥对信息验证就知道,这些信息肯定是A发的了,因为只有A使用的私钥签名得到的信息,才能用这个公钥来解。如果A还认是他发的信息,那只有一个可能,那就是他的私钥被人盗取了。
现在我们知道公钥机制的原理了,那它有什么用呢?上述举的例子就比较常用,而在我们日常工作中也有些用到公钥机制的地方,我们可能有人用过钥匙盘,它是一个类似U盘的东西,一般提供USB接口,它就使用了公钥机制,当我们在一台计算机上初始化这个钥匙盘的时候,它会生成一对密钥对,把公钥存在计算机上,私钥存在钥匙盘上,当用户要进行一个系统虽要身份验证时,只虽插入钥匙盘,就会通过公私钥加解密的原理,完成这个用户的身份验证过程,而无需输入帐号和密码进行验证。
现实上,公钥机制也有它的缺点,那就是效率非常低,比常用的单密钥算法慢上一两个数量级都有可能,所以它不适合经常为大量的原始信息进行加密,而使用单密码钥机制对原始信息进行加密码,然后这个单密钥,我们可以通过公钥机制进行加密。
分享到:
相关推荐
RSA公钥算法是一种广泛应用于网络安全中的非对称加密技术,由Ron Rivest、Adi Shamir和 Leonard Adleman 在1977年提出,因此得名RSA。它基于数论中的两个核心概念:大整数因子分解的困难性和欧几里得算法。在RSA中,...
公钥算法,也称为非对称加密算法,是现代密码学中的重要概念,它在网络安全、数据加密和数字签名等领域有着广泛的应用。本资源包含的"公钥算法编程设计源代码"提供了实现这些算法的实际示例,对于学习和理解公钥算法...
针对这一挑战,韩继红等研究者在2011年提出了一种基于双矩阵组合公钥算法的密钥生成方案。该方案的提出,是基于双矩阵组合公钥体制的基础上,结合了秘密共享技术,旨在生成一种既安全又可靠的私钥。这种私钥不仅满足...
RSA公钥密码算法是计算机安全领域中的一种重要加密技术,由Ron Rivest、Adi Shamir和 Leonard Adleman 在1977年提出,因此得名RSA。它基于大整数因子分解的困难性,为数据的传输提供安全保障。在本项目中,我们将...
RSA 公钥算法Java代码(带界面).doc
证明推导了公钥加密算法RSA和签名算法DSA,RSA和DSA是SSL/TLS的基础,理解算法的数学原理,有助于加深对网络安全的理解
本文主要关注的是公钥密码系统中的RSA算法,这是一种广泛应用的非对称加密算法。 RSA算法由Rivest、Shamir和Adleman三位学者在1977年提出,它的理论基础来源于数论,特别是大整数因子分解的困难性。在RSA系统中,每...
个人实战积累的成果,基于国密算法的总结,希望可以帮到您 亲们下载我任何一个付费资源后,即可私信联系我免费下载其他相关资源哦~ 个人实战积累的成果,基于国密算法的总结,希望可以帮到您 亲们下载我任何一个...
RSA算法是第一个能同时用于加密和数字签名的算法,是一个被研究的最广的算法,从提出到现在经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥算法之一。但是幂模运算是RSA的速度瓶颈,而模幂运算又...
在分析现有基于挑战/应答一次性口令方案不足的基础上,设计了一种新的基于hash函数和公开密钥加密算法的一次性口令身份认证方案。该方案不仅能够提供通信双方的相互认证、避免各种攻击,而且克服了传统挑战/应答...
RSA算法是由Ron Rivest、Adi Shamir和Leonard Adleman在1978年提出的,是目前最广泛使用的公钥密码算法之一。RSA的安全性基于大整数分解的难度,即对于两个大素数\(p\)和\(q\),计算\(pq\)很容易,但从\(pq\)反向...
SM2椭圆曲线公钥密码算法详解.rarSM2椭圆曲线公钥密码算法详解.rarSM2椭圆曲线公钥密码算法详解.rar 1、附件有密码,获取解压码,请关注公众号“蛹破蝶飞” ,或者扫描压缩包中的图片即可,回复“秘钥算法”,即可...
SM2椭圆曲线公钥密码算法-part2-数字签名算法;国密算法 标准文件
5. **处理公钥**:根据公钥算法,如RSA,将二进制数据转换为可用的公钥对象,可以使用如`RSA_get0_pubkey`(OpenSSL)这样的函数。 在实际开发中,你可能还需要考虑证书的编码错误、非标准格式或者不常见的扩展。...
公钥算法,也称为非对称加密,是相对于传统的对称加密而言的。在对称加密中,发送者和接收者使用同一把密钥进行加密和解密,而公钥算法则使用两把不同的密钥:一把是公钥,可以公开;另一把是私钥,必须保密。 标题...
RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要...RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。
代码实现了SM2算法(国家密码管理局于2010年12月17日发布的椭圆曲线公钥密码算法)。...SM2算法和RSA算法都是公钥密码算法SM2算法是一种更先进安全的算法,在我们国家商用密码体系中被用来替换RSA算法。
ECC(椭圆曲线密码)是一种相对较新的公钥算法,它以椭圆曲线理论为基础。ECC的主要优势在于安全性相当高,但所需的密钥长度比RSA短,因此在资源有限的设备上更受欢迎。 DSA是一种基于离散对数问题的数字签名算法,...
国密局发布的SM2椭圆曲线公钥密码算法文档,pdf,完整版的。1、总则;2、数字签名算法;3、密码交换协议;4、公钥加密算法