抛砖引玉—对称加密,非对称加密,门罗币
Posted 星空南半球
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了抛砖引玉—对称加密,非对称加密,门罗币相关的知识,希望对你有一定的参考价值。
抛砖引玉—对称加密,非对称加密,门罗币
Monero
在一切开始前,我们先讲一个小故事,小明去取钱忘记了密码,微信联系妈妈,妈妈想通过手机把密码告诉他,又怕手机垃圾软件收集了信息,监听,或者被钓鱼,以后被盗取密码,那么该怎么做呢。
那么让我们来玩一个“心灵感应”的小魔术。假设小明妈妈密码是8563,这是她想真实传递的信息,小明告诉她如何加密,首先用妈妈的真实密码乘以137。也就是8563×137 =1173131,然后裁剪,只把后四位数3131传递给小明就可以了。小明如何还原呢,用3131×73=228563。是的,最后四位就是妈妈一开始想传递的真实数字8563。黑客即使盗取信息,也只能偷到3131并不知道真实的数字,后面的场景还可以让这个系统更安全。
回到原理解答,其实很简单,任何一个四位数,三位数,两位数,乘以10001,后面四位都是不变的,例如1395×10001=13951395 再例如7428×10001=74287428,或者简单一些253×10001=2530253,我们能看到尾数都是不变的,这个很好理解,因为乘的个位数是1,所以不管怎么乘都是不会改变结果的。那再说第二个基本因数,3×16=48,而16=2×8,所以3×(2×8)最后还是能得到48。
在上面的故事里,8563×10001得到的结果,和8563×137×73最后结果是一样的,因为137×73=10001。同理我们还可以乘1001,只不过公因数是91和11或者7和143,或者77和13,利用这个数字大小和位数,我们可以有无穷变化,这个模型里,小明就是非对称加密的一个模型,我告你如何加密,可如何解密只有我知道,严格意义来说,小明妈妈是可以算出小明加密的密钥是10001的,小明的对应策略就是可以和不同的人约定不同的乘数组合,而真正的非对称加密系统,并不需要这么麻烦,是当事人哪怕用同一套系统加密,也不知道到底如何破解。这就是利用的大素数很难反推的原理。
在解释前,还是举例子,比如你生产了很多锁,分发到市场上,任何人都可以用这个锁加密,在盒子里锁东西给你,而只有你有钥匙可以打开。或者你家的邮箱,任何人都可以投递信件和快递,只有你能打开信箱,这就叫非对称加密。非对称加密是只要你自己不丢钥匙,就不会被窃取隐私,别人知道你的公开加密方式,也没有用。
对称加密技术是双方用同一套信息加密和解密,比如小明和小明父母三个人都有家里储藏室的钥匙,三个人都可以用这个钥匙和储藏室给其他人传递东西,不过风险是只要有一个人丢失了钥匙,那么整个系统的安全性就破坏了。
所以非对称加密的优点是更安全,不过越多人参与进来所需要的数据越多,因为多方都需要公钥和私钥,并且加密,解密的速度较慢,所以telegram就不支持群聊加密。而对称加密的优点是快速,缺点是只要有一个环节信息泄露,所有人的秘密都会暴露,所以what’s app 会动态改变双方的密码本。所以现在还衍生出非对称加密+对称加密组合。
而门罗最大的特性就是传输金额和交易实际到账的打包高度只有双方事后才知道,这就形成了一个完美的闭环,再利用经典的对称加密AES,可以做到文字聊天全隐私。而门罗怎么做到的请看之前的文章,他为什么是唯一的加密货币,人人的瑞士银行和电子现金。
最后是援引的 https://mp.weixin.qq.com/s/zRK1uci_4Vsbfd84ZrqUtg 全站工程师 关于RSA非对称加密的数学原理,希望对大家有帮助。
RSA
RSA 算法是一种迄今为止理论上比较成熟和完善的公钥密码体制,是非对称密码体制的典型代表。在网络、信息安全等许多方面都使用 RSA 算法,特别是 RSA 算法典型应用在通信中的数字签名,可实现对手的身份、不可抵赖性验证。在身份认证、信息安全、电子商务中有着广泛的应用前景。
RSA 的算法流程
RSA 算法由密钥的产生、加密算法和解密算法 3 个部分组成。
密钥的产生过程如下:
产生两个大素数 p 和 q ;
计算 n = p × q ,欧拉函数 φ(n) =(p - 1)(q - 1)
选择整数 e ,使其满足条件:1 < e < φ(n) ,且gcd(e,φ(n)) = 1(注:gcd () 函数计算两个数的最大公约数);
计算 e 的逆元 d :d∙e ≡ 1 mod φ(n)(注:由于gcd(e,φ(n)) = 1,则 d 一定存在);
取序对 (e,n) 为公钥,可公开;(d,n) 为私钥,对外保密。
加密算法过程如下
将要发送的字符串分割为长度为 m < n 的分组,然后对分组 mi 执行加密运算,得到密文 ci :ci ≡(mi)e mod n
解密算法过程如下
收到密文 ci 后,接收者使用自己的私钥执行解密运算,得到明文 mi :mi ≡(ci)d mod n
RSA 详细的算法设计流程
大素数的产生和测试
Miller-Rabin 算法是一种基于概率的素数测试方法,在密码学的素数产生中,由于该算法的速度快、原理简单、易于实现,成为进行素数检测的最佳选择。
Miller-Rabin 算法是对费马算法改进,它的操作步骤如下:
计算 m ,满足 n = (2r 2的r次方 ) m + 1;
选择随机数 a ∈[1,n] ;
若 am mod n = 1 ,或满足 aim mod n = n - 1 ,则 n 通过随机数 a 的测试;
再取不同 a 要的值对 n 进行 t = 5 次测试,如果每次测试结果为 n 是素数,则以高概率判定 n 是素数。假设 n 通过 t 次测试,则判定结果错误的概率是1/4t;若只通过一次测试,素数判定的错误概率是 25%。
To The Moon
Monero
参考文献
https://www.zhihu.com/question/33645891
https://www.toutiao.com/i6763897012527038979/?tt_from=weixin&utm_campaign=client_share&wxshare_count=3&from=timeline×tamp=1577626501&app=news_article&utm_source=weixin&isappinstalled=0&utm_medium=toutiao_ios&req_id=201912292135010100260770821B1C0CE4&group_id=6763897012527038979&pbid=6720905161311602180
以上是关于抛砖引玉—对称加密,非对称加密,门罗币的主要内容,如果未能解决你的问题,请参考以下文章