`
gabrielyang
  • 浏览: 16567 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

RSA算法理解

 
阅读更多

        如果你不想搞明白数学原理是怎样的,而又想了解RAS算法是如何实现这种看似不可能的密钥和密文放在一起却无法破解的难题,那么请看我的简要分析。


1.bob和alice正在通讯,bob的回复是极为机密的,只有alice一个人才可以知道,被别人知道的话,alice和bob的几亿元的财富就被别人所占有了。


2.alice问bob,你给我发过来我想要的答案,顺便给了bob一个几千位的字符串【A】。这句话被几万人所传阅,所有的人都看到了alice想要 bob的答案,也看到了这个几千位的字符串【A】。这个字符串【A】是由一种大家都明白的方法生成的。由两个只有alice知道的字符串【A1】【A2】 通过这种大家都明白的数学方法得到一个超级无敌长的字符串【A】。这个方法的好处就是,全世界只有alice才知道怎么把这个字符串【A】分解成之前的两 个字符串【A1】【A2】,而别人想要分解的话,需要几万年的时间。其实,在这个特例中,别人只要一个月以上才可以破解的话,alice就已经没有任何需 要担心的了,信息的时效性是非常重要的。如果这个字符串可以被别人一个月破解,那么alice只需要把这个字符串提高几位,这就需要几十年才可以破解了。


3.bob和所有人都受到了这条信息,于是bob就把自己的答案【Answer】通过特定的方法与alice给的字符串【A】融合,生成一个复杂的字符串 【B】。由于这种深奥的数学原理的特性,造成了这么一个结果:只有alice的两个字符串【A1】【A2】才可以用作拆分bob的字符串【B】的工具,如 果没有alice的两个字符串【A1】【A2】,那么bob的回答【B】也是无法破解的。此时需要注意的是,bob也不知道【A1】【A2】是什么,而且 如果bob忘记了自己的回答【Answer】,那么他自己也无法从【B】中破解出自己的真实回答【Answer】,bob只是利用了alice给的字符串 【A】结合自己的真实回答【Answer】才生成了【B】。如果bob没有用【A】反而直接回答:“我们公司正在研究xxxx”【Answer】,那么所 有人都呵呵了。


4.所有人都在费力破解【B】的时候,Alice利用【A1】【A2】很容易的就分解了【B】,从而得到了准确的答复【Answer】。


5.以上只是alice单方面的加密,如果bob给了Alice一个长字符串【C】,这是由【C1】【C2】生成的,那么双方的通信内容将全都不可知。

 

 

综上所述,
alice:【A1】+【A2】→【A】
bob:【Answer】+【A】→【B】
alice:【B】→利用【A1】【A2】作为工具→【Answer】
其中【A】→【A1】+【A2】几乎无法实现
【B】→【Answer】不借助【A1】+【A2】也是几乎无法实现
至于算法如何,那就是数学家的事了。
以上纯属一派胡言,只是作为帮助我自己理解用的。

分享到:
评论

相关推荐

    VC++实现RSA算法

    在VC++中实现RSA算法需要理解其核心原理,包括大整数运算、素数检测、欧拉函数以及模逆运算等。下面我们将详细探讨这些知识点。 1. **大整数运算**:RSA算法涉及到大整数的加减乘除和幂运算。VC++标准库并没有提供...

    RSA算法工具 RSA算法

    了解RSA算法并熟练运用其工具对于理解和保障网络安全至关重要。在实际开发中,开发者会利用这些工具进行安全通信,保护用户隐私,防止数据被未经授权的第三方窃取。同时,随着计算能力的提升,不断有研究致力于破解...

    RSA算法演示.rar

    在此RAR压缩包中,我们很可能是得到了一个使用易语言编写的RSA算法的演示源码,这对于理解RSA算法的工作原理和学习如何在编程中实现RSA是非常有帮助的。 RSA的核心概念包括两个密钥:公钥和私钥。公钥是可以公开...

    RSA实现算法报告关于RSA算法的实现代码

    ### RSA算法实现报告 #### 实验环境 - **硬件配置**:处理器:Intel(R) Core(TM) i5-2430M CPU @ 2.40GHz (4CPUs), ~...通过这些内容的学习与实践,可以更好地理解RSA算法的工作原理及其在实际应用中的优势和局限性。

    RSA算法加解密

    RSA算法加解密 RSA算法是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, Adi Shamir 和 Leonard Adleman。但RSA 的安全性一直未能得到...

    RSA.rar_RSA算法_寻找大素数 rsa_数论算法_简单数论

    RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。RSA是被研究得最广泛的公钥算法,从提出到现今的三十多年里,经历了各种攻击的考验,逐渐为人们接受,普遍认为是目前最优秀的公钥方案之一。

    RSA算法的C实现

    在C语言中实现RSA算法需要理解其核心原理和数学基础。 1. **RSA原理**: RSA基于两个大素数的乘积以及欧拉函数的性质。公钥由这两个大素数p和q的乘积n以及欧拉函数φ(n)的乘积e(1φ(n),且e与φ(n)互质)组成;...

    密码学RSA算法实现代码

    RSA算法是一种非对称加密算法,它在信息安全领域扮演着重要的角色,特别是在数据加密和数字签名方面。由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这个算法基于两个数学难题:大整数因子...

    rsa.rar_RSA  C语言_RSA算法C++_RSA解密 C语言_rsa

    在C语言中实现RSA算法,可以帮助我们理解其工作原理并应用于实际项目。 首先,RSA算法的核心概念包括公钥和私钥。公钥是可以公开的,用于加密数据;私钥是保密的,用于解密数据。任何人都可以用公钥加密信息,但...

    RSA算法实验报告 通过对RSA算法的实现,深入了解RSA原理及应用

    实验目的在于通过实践加深对RSA算法原理的理解和应用。在公钥密码体制中,RSA算法的独特之处在于它能够同时用于数据加密和数字签名。加密过程使用公钥,解密过程使用私钥,这一特性使得RSA在开放的网络环境中具有较...

    RSA算法演示RSA算法演示

    RSA算法是一种非对称加密算法,...本演示可能通过RSA算法演示.exe文件展示了上述概念的实际操作,让使用者直观理解RSA加密解密的过程。通过这样的实践,用户能够更好地掌握RSA算法的原理,并了解其在实际场景中的运用。

    RSA算法的C++实现

    这个压缩包文件提供了RSA算法的C++实现,包括头文件和源代码,是学习和理解RSA算法的一种实用资源。 RSA算法的核心原理基于两个大素数的乘积难以因式分解的数学难题。它由三个主要步骤组成:密钥生成、加密和解密。...

    RSA算法试验报告

    本实验通过对RSA算法及其关键组成部分——Rabin-Miller素性测试算法的研究,不仅加深了对公开密钥加密技术的理解,还为实际应用中的密码安全体系提供了有效的技术支持。未来的研究方向可能包括进一步优化素性测试...

    关于RSA算法的演示程序

    - `RSA算法实现.doc`:可能是一篇文档,其中包含了RSA算法的代码实现,可能是用某种编程语言(如Python、Java或C++)编写的,帮助读者理解如何在实际项目中应用RSA。 - `RSA.exe`:这可能是一个执行文件,是一个简单...

    易语言RSA算法演示

    在易语言中实现RSA算法,可以帮助开发者更好地理解和运用这种强大的加密技术。 易语言是一种面向对象的、中国本土化的编程语言,它以其简洁的语法和丰富的内置库函数,使得编程变得更加直观和简单。在易语言中实现...

    rsa.rar_C语言 RSA_RSA C语言_RSA算法_RSA算法 c++_rsa

    在这个“rsa.rar”压缩包中,包含了用C语言实现RSA算法的代码示例,对于学习和理解RSA算法的原理以及在C语言环境下的应用具有一定的参考价值。 1. **RSA算法基础** RSA算法基于两个大素数的乘积难以分解的数学难题...

    RSA算法程序设计代码及报告

    首先,我们来理解RSA算法的基本概念。RSA基于数论中的大数因子分解难题,其安全性依赖于两个大素数p和q的乘积n难以分解。生成一对密钥:公钥(e,n)和私钥(d,n),其中e和d是满足条件ed ≡ 1 mod φ(n)的两个整数...

    Delphi中的经典RSA算法源码示例

    在Delphi编程环境中,理解并实现RSA算法对于开发安全相关的应用至关重要。本示例源码已经针对XE系列版本进行了优化,支持中文字符,并可以直接用于加密和解密操作。 **RSA算法原理:** 1. **公钥与私钥**:RSA的...

    基于RSA算法的数字签名系统 C#实现

    通过对这些代码的学习和理解,开发者可以深入掌握如何在实际项目中运用RSA算法来构建安全的数字签名系统。 总之,基于RSA算法的数字签名系统是保障信息安全的关键技术之一,它在电子商务、在线交易、电子邮件安全等...

    RSA算法,VC 实现算法,附测试程序

    在这个场景中,我们看到的是使用VC++(Visual C++)实现RSA算法的代码,还附带了测试程序,这将帮助我们理解并验证RSA算法的实际操作。 首先,RSA的核心原理是基于两个大素数的乘积难以因式分解。两个大素数p和q...

Global site tag (gtag.js) - Google Analytics