密码学
文章平均质量分 66
jason_cuijiahui
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
最直白的盲签名
A把消息M盲化为消息M’,M’让B签名,得到盲签名Sign’A把盲签名Sign’签名去盲,得到签名SignA把M和Sign给到CC可以验证B对其签过名,而B不知道自己啥时候签过了这个消息原创 2021-06-03 19:52:14 · 615 阅读 · 0 评论 -
Schnorr签名方案
https://www.8btc.com/article/359451https://www.8btc.com/article/359642https://panzhibiao.com/2019/02/28/schnorr-sigature/原创 2019-09-08 10:59:55 · 1148 阅读 · 0 评论 -
密码学数学基础
https://wenku.baidu.com/view/07ae5ea7cf2f0066f5335a8102d276a20129607a.htmlhttps://spaces.ac.cn/archives/3200原创 2019-05-03 16:13:58 · 1432 阅读 · 0 评论 -
现代密码学及其应用(Cryptography and Secure Communication)-习题(Chapter 1)
1.1Prove that there are N! distinct ways to arrange a sequence of N distinct symbols.ans: an=n∗an−1a_n=n*a_{n-1}an=n∗an−1How many nontrivial recreational cipher keys on an alphabet of size 26 ar...原创 2019-04-28 16:04:49 · 2410 阅读 · 3 评论 -
如何把字符串哈希成椭圆曲线上的点
朴素方法注:t就是字符串哈希(sha256)后的值,同时作为椭圆曲线点的x值,但是y值即s\sqrt{s}s不一定是整数,因此构造x的过程中需要引入i,令x=t+ix=t+ix=t+i,不断地尝试。更先进的哈希方法和分析...原创 2019-02-07 10:19:59 · 1847 阅读 · 0 评论 -
关于素数的一些概念
安全素数安全素数是满足2p+1形式的一类数,在这里p也是素数。(相反地,素数p叫做索菲热尔曼素数。)若p1=2*p2+1,则p1称为安全素数,p2称为索菲热尔曼素数。为什么叫安全素数之所以叫它们是“安全”素数,是因为它们在加密算法中的运用:某些约数分解的算法(如Pollard Rho算法)的计算时间部分取决于被分解数的素因数减去一的约数大小,而若被分解的数以一个安全素数2p+1作为约数,由...原创 2019-02-01 09:58:58 · 2658 阅读 · 0 评论 -
米勒—拉宾 素性测试(Miller–Rabin primality test)
数论知识欧拉定理aϕ(n)≡1(mod n)a与n为正整数且互质a^{\phi(n)}\equiv1(mod\ n) \qquad a与n为正整数且互质aϕ(n)≡1(mod n)a与n为正整数且互质费马小定理若p为素数,且存在a与p互质(任意的a<p都满足),此时ϕ(p)=p−1\phi(p)=p-1ϕ(p)=p−1,根据欧拉定理有,ap−1≡1(mod&nb...原创 2019-01-20 00:21:44 · 1338 阅读 · 0 评论 -
环签名(Ring signature)
参考自环签名指的是在n个公钥中隐藏自己拥有私钥的那个公钥,具体应用就在于区块链上隐藏交易发送人(地址/公钥)。准备首先定义以下函数,其中EkE_{k}Ek为对称加密算法,k为EkE_{k}Ek对应的对称密钥Ck,v(y1,y2,…,yn)=Ek(yn⊕Ek(yn−1⊕Ek(⋯⊕Ek(y1⊕v)… )))=v{\displaystyle C_{k,v}(y_...原创 2018-12-09 23:16:51 · 16109 阅读 · 0 评论 -
区块链中的隐地址(stealth addresses)
Alice生成一个Bob才能有私钥的隐地址(公钥T),两者不需要交互。R需要在交易中被附上。推导:T=B+Hash(rV)G=B+Hash(rvG)G=B+Hash(vR)G=bG+Hash(vR)G=(b+Hash(vR))GT = B + Hash(rV)G = B + Hash(rvG)G \\ = B + Hash(vR)G = bG + Hash(vR)G \\ = (b+Hash...原创 2018-12-09 17:57:56 · 1789 阅读 · 2 评论 -
用Python实现MD5&RSA签名和验签
用pem文件pub_key.pem-----BEGIN PUBLIC KEY-----MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQChNn3wKRtPmxaKq2dKsfMn6sO6AKxvtxZgNdh7HBWq2z0AJusZHFx2tO2X3jpaYWSIwDrH6AdU2LMMc7IRaUgvLRgT6kPK5OLEzvS+Bmh+1kh7F...原创 2018-05-16 17:15:41 · 5790 阅读 · 0 评论 -
python下安装Crypto模块
Windows安装gcc, g++支持 pip install pycryptoLinux安装gcc, g++支持 2.pip install pycrypto原创 2018-05-16 16:18:39 · 7774 阅读 · 0 评论 -
HSM加密机 (分级密钥管理)
参考自三级密钥体制示意图主密钥用于加密密钥交换密钥和数据密钥作本地存储;密钥交换密钥用于加密数据密钥作网络传输;数据密钥用于对数据进行加解密。三级密钥体制说明 1. 第一层,LMK为本地主密钥,,它是存放在HSM机内的,它的作用是对所有在本地存放的其它密钥和加密数据进行加密,不同对的LMK用于加密不同的数据或密钥。由于本地存放的其它密钥和加密数据,都是在LMK...原创 2018-05-08 09:46:42 · 19069 阅读 · 0 评论 -
Scrypt vs X11 vs SHA-256
参考自 With several thousand cryptocurrencies in existence right now, it is not surprising to learn a lot of coins use different mining algorithms. Whereas bitcoin uses SHA-256, other coins may use the ...原创 2018-04-17 14:24:08 · 508 阅读 · 0 评论 -
哈希长度扩展攻击
简介In short, the length-extension attack on one-way hash construction is that you can, given h(m) and len(m), you are able to compute h(m||pad(m)||m’) for any m’ (|| stands for concatenation), even i...原创 2018-04-16 17:04:12 · 1021 阅读 · 0 评论 -
哈希加盐作为密钥的意义
主要为了防止黑客利用用户常用密码库进行碰撞,加盐后黑客就无法通过此方法碰撞。参考自为什么要用哈希函数来加密密码如果你需要保存密码(比如网站用户的密码),你要考虑如何保护这些密码数据,象下面那样直接将密码写入数据库中是极不安全的,因为任何可以打开数据库的人,都将可以直接看到这些密码。解决的办法是将密码加密后再存储进数据库,比较常用的加密方法是使用哈希函数(Hash Funct...原创 2018-04-11 09:45:30 · 12327 阅读 · 0 评论 -
Hash算法
MD5哈希加密算法SHA-1哈希加密算法SHA-2哈希加密算法SHA-3哈希加密算法RIPEMD-160哈希加密算法原创 2018-04-16 14:06:04 · 670 阅读 · 1 评论 -
Scrypt算法
看了一圈觉得还是WikiPedia的比较通俗靠谱:OverviewThe large memory requirements of scrypt come from a large vector of pseudorandom bit strings that are generated as part of the algorithm. Once the vector is genera...原创 2018-04-14 14:47:31 · 5668 阅读 · 0 评论 -
MAC消息认证码与Hash函数的关系和区别
更多两个是个不同范畴的东西HashA hash is a function that produces a digest from a message. A cryptographically secure hash is for which it is computationally infeasible to generate a message with a given dige...原创 2018-03-19 16:46:51 · 7818 阅读 · 1 评论 -
同态加密算法简述
同态加密如果我们有一个加密函数 f , 把明文A变成密文A’, 把明文B变成密文B’,也就是说 f(A) = A’ , f(B) = B’ 。另外我们还有一个解密函数 f−1f^{-1} 能够将 f 加密后的密文解密成加密前的明文。对于一般的加密函数,如果我们将A’和B’相加,得到C’。我们用f−1 f^{-1} 对C’进行解密得到的结果一般是毫无意义的乱码。但是,如果 f 是个可以进行同态加密的加原创 2018-01-21 18:04:00 · 46082 阅读 · 5 评论
分享