非对称加密算法的本质

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介:

非对称加密算法的本质就是利用了一些数学难题,比如rsa利用了大数分解的难题,dh利用了离散对数的难题,而ecc利用了椭圆曲线域上的理论,这些被成为难题,仅仅是难而已,理论上是有解并且可解的,比如大数分解问题,我估计c语言或java语言第一学期的课程的作业中肯定会有一道题,该题就是求出一个数的所有因数,当时最直接的方法就是一个一个试,对于大数来讲,一个一个试会使你或者计算机发疯,如果你有足够的时间等待,那么最终是可以得到答案的...

     密码学从本质上说并不是很严密,加密数据的安全性总是相对的而不是也不可能是绝对的,破解加密数据从理论上说绝不是不可能的,加密数据之所以安全,靠的不是算法的无懈可击,考得是人类包括人类的机器的能力的相对弱小,如果人类的平均寿命为10000岁,那么现如今的加密算法都将是不安全,如果一个人平均要用10年以上的时间才能对数据进行解密,那么这个加密算法以及密钥将被认为是很安全,理论上一个人可以用毕生精力去揭秘一段密文,如果不成则让儿子孙子继续,但是这样做的现实意义并不大,另一方面,人或者机器完全有可能一次就能猜中密钥是什么,但是这种事在现实中的概率却很小,所以在确定算法和密钥的时候,尽可能让破解时间变长,从而让破解本身变得没有意义,同时在确定密钥的时候,尽可能让密钥位数很大,从而让猜中密钥或者穷举的概率和时间变得很小和很长。这就是密码学的本质,千万不要认为加密的数据一定是绝对安全的,密码学更多的是社会学和心理学的意义,而不是纯粹计算机和数学的意义。人们被枪击的概率很小,因此几乎所有的衣饰都不防弹,地震的几率很小,所以人们投资房地产,并且认为房子里很舒适,如果追求安全的话,我认为住草房在地震时起码不会被埋或者被砸。
     如果说密码学有数学上的意义,那么它利用的就是数学上的“难解”理论,这个在计算复杂性中有涉及,所有的能在问题大小规模的多项式时间内解决的问题,我们认为是易解的,称作P问题,所以能在问题规模多项式时间内被验证的问题,我们称为是NP问题,注意是被验证,也就是说首先你要给一个你认为的答案,算法本身仅仅告诉你你的答案是否正确,具体怎样能给出一个答案,算法是不管的,密码学利用的就是这个,比如一个很大的素数,求出它的因数,如果你随意给一个数,只需要除一下(不要小看这个除法,一般计算机并不是直接支持大数运算的,一个数超过比如一般的32位或者64位就要编程要计算了)就知道它是否是一个因数,但是穷举本身会使得计算者发疯,如果用了几十年或者几百年破解了一个密文,有意义吗?什么密文如此重要呢,一战前的协约国们有些在二战后都不存在了,或者说你在明天破解了纳粹进攻苏联的密文,但是它也只能是历史文献了,而你也不会是什么向图灵那样的功臣了,充其量是个数学家或者历史学者。
     计算复杂性本身有很多内容,密码学仅仅利用了它的一些结论罢了。NP问题到底能否最终归结为P问题,这本身就可能研究一辈子的了,研究它的人和搞密码学的人并不是一类人,搞密码学的人和编程的人也不是一类人,懂c语言的人不一定能看懂openssl,看懂了openssl的也不一顶知道des置换的含义,精通加密解密api的家伙们能被成为程序员或者工程师,他们可能不知道也没有必要知道rsa或者ecc的理论,而我,什么也不懂,什么也不成...


 本文转自 dog250 51CTO博客,原文链接:http://blog.51cto.com/dog250/1271922

相关文章
|
7月前
|
算法 Java 数据处理
Java中MD5加密算法的实现
Java中MD5加密算法的实现
|
5月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点讲解了如何使用 Kotlin 实现 AES-256 的加密和解密,并提供了详细的代码示例。通过生成密钥、加密和解密数据等步骤,展示了如何在 Kotlin 项目中实现数据的安全加密。
206 1
|
5月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点展示了如何使用 Kotlin 实现 AES-256 的加密和解密,提供了详细的代码示例。
109 2
|
5月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
373 1
|
5月前
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
73 1
|
6月前
|
存储 算法 安全
网络安全中的加密技术与解密算法:保障数据安全的基石
【7月更文挑战第1天】网络安全依赖加密技术与解密算法确保数据安全。本文探讨加密原理、对称与非对称加密(如AES、DES、RSA、ECC)及它们在数据传输、存储安全和身份验证中的应用。加密是数据保密的核心,面对不断升级的网络威胁,加密技术将持续进化以适应新挑战。
|
6月前
|
算法 C# 数据安全/隐私保护
|
6月前
|
算法 安全 Java
Java中MD5加密算法的原理与实现详解
Java中MD5加密算法的原理与实现详解
|
7月前
|
存储 安全 算法
三种常见的加密算法:MD5、对称加密与非对称加密的比较与应用
网络安全聚焦加密算法:MD5用于数据完整性校验,易受碰撞攻击;对称加密如AES快速高效,密钥管理关键;非对称加密如RSA提供身份验证,速度慢但安全。三种算法各有所长,适用场景各异,安全与效率需权衡。【6月更文挑战第17天】
1222 2
|
6月前
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹

热门文章

最新文章