![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
密码学
0xweb3q
rust、blockchain、smarcontract、evm、move、wasmtime
展开
-
从零写RSA二:RSA原理及其实现
RSA算法就是基于大素数难以分解而得到的一种算法,通过公钥和私钥来进行对数据的加密解密。选择两个大素数p,q。计算n=p*q 计算s=lcm(p-1,q-1),即p-1和q-1的最小公倍数 随机选择e,使得1<e<s,且gcd(e,s)=1 计算e的模逆元e*x % s = 1(即de=1 mod (p-1)(q-1)) 则(n,e)为公钥,(n,d)为私钥 RSA加解密...原创 2019-06-29 19:52:14 · 361 阅读 · 0 评论 -
从零实现RSA一:找质数
质数质数是大于1且只有1和它本身两个因数的整数。以下列出一些质数(注意,1不被看做质数):2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 7173 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 ......无穷无尽。质...原创 2019-06-29 19:14:12 · 1418 阅读 · 0 评论 -
零知识证明三—— 如用zksnarks方式构建一个匿名投票系统
这个匿名投票系统的例子还是不完善的,如果你有好的建议和想法可以留言一起学习探讨。https://github.com/XuHugo/zksnarks-election/tree/master 一、构建一个匿名的投票系统,最核心的部分有两个, 1、投票人的匿名 2、投票人身份合法性确认 如何解决这个两个核心问题? 第一个...原创 2019-06-21 23:18:25 · 2050 阅读 · 1 评论 -
零知识证明一:zksnarks资料总结
这个零知识证明研究好久,现在也是感觉刚刚入门,这次先总结一下,zksnarks的一些资料; 1、zcash官方的七篇文章,个人感觉HH和d-KCA讲的比较清晰,R1CS和QAP就不清晰了,最好自己拿起笔计算一下,可能会更快的理解; 1)https://electriccoin.co/blog/snark-explain/ 2)https://e...原创 2019-06-21 20:45:34 · 957 阅读 · 0 评论 -
P问题、NP问题、NPC问题、多项式时间
多项式时间: 先说一下时间复杂度,时间复杂度并不是表示一个程序解决问题需要花多少时间,而是当问题规模扩大后,程序需要的时间长度增长得有多快。也就是说,对于高速处理数据的计算机来说,处理某一个特定数据的效率不能衡量一个程序的好坏,而应该看当这个数据的规模变大到数百倍后,程序运行时间是否还是一样,或者也跟着慢了数百倍,或者变慢了数万倍。 在时间复杂度的计算中常用的...原创 2019-05-24 08:08:06 · 1114 阅读 · 0 评论 -
密码学编程基础——换位加密
换位加密原理: 换位加密就是将消息打乱,例如原文“Common sense is not so common.”然后我们假如我们将密钥设置成8,然后从将原文的每个字母从1开始编号,空格也算,将1、1+8、1+2*8 ... ... 1+n*8 组成一个字符串,将2、2+8、2+2*8... ... 2+n*8组成一个数组以此类推。看了这张图有没有似曾相识相识的感觉。希尔排...原创 2019-05-23 22:17:58 · 2482 阅读 · 0 评论 -
离散对数基础
原文:http://abloz.com/tech/2018/06/27/discrete-logarithm/概念同余运算数学上,同余(congruence modulo,符号:≡)是数论中的一种等价关系。当两个整数除以同一个正整数,若得相同余数,则二整数同余。同余是抽象代数中的同余关系的原型。最先引用同余的概念与“≡”符号者为德国数学家高斯。两个整数 a, b,若它们除以正...转载 2019-05-23 07:19:22 · 7017 阅读 · 0 评论 -
零知识证明二——zksnarks学习笔记
写一下最近研究零知识证明的一些理解 ,也许会有错误,不过后续会继续更新。1、零知识证明是一种协议,任何人都可以按照这套协议实现工程,当然前提是你现实的工程无懈可击;后续我也会根据自己的写一个demo;2、零知识证明有交互式和非交互式之分,但是非交互式并不意味着没有任何信息的传递,还是有信息的交换的,只是很少;3、zksnarks中的多项式盲证KCA,并不是直接证明P拥有的多项式p‘(x)...原创 2019-05-16 23:17:30 · 570 阅读 · 0 评论 -
密码学编程——凯撒加密
凯撒加密原理: 凯撒加密法,这种加密法曾在两千年前被凯撒大帝用过,主要用于加密通过信使传递的作战命令。它将字母表中的字母移动一定位置而实现加密。例如如果向右移动 8位,则 字母 A 将变为Q,字母 B 将变为R,…,字母 X 变成 N,字母 Y 则变为 O,字母 Z 变为 P。其中右移8位的,8就是加密密钥;如何用程序实现: 把字母表的字母从A到Z写...原创 2019-05-22 08:35:18 · 1345 阅读 · 0 评论 -
群、环、域的概念总结
很容易看懂群简而言之,群的概念可以理解为:一个集合以及定义在这个集合上的二元运算,满足群的四条公理,封闭性、结合性、单位元、反元素。具体理解为:封闭性:在集合上作任意二元运算,不会诞生新的运算,这个集合已经经过充分的完美拓扑。结合性:组合一个二元操作链,之间没有先后运算的区别,这种操作是平坦的(区别交换律)。单位元:具有单位的属性,单位元和任何一个元素操作等于那个元素本身。...转载 2019-05-20 21:41:48 · 16624 阅读 · 1 评论 -
零知识证明四——Fiat-Shamir,三分钟零知识证明入门
看了一些密码学的书籍,都是老外的,才发现歪果仁还真是喜欢alice和bob,这二位霸占了密码学的故事的主角。今天我们也邀请二位来参与我们的故事。今天介绍的是比较简单的零知识证明,交互式零知识证明——Fiat-Shamir,不过这就是为了把大家领上道,实际应用是比这个要负责的;Fiat-Shamir 要进行Fiat-Shamir,首先进行准备工作,由可信第三方,随机选...原创 2019-07-15 22:18:48 · 3690 阅读 · 5 评论