03 2017 档案
摘要:阻塞,blocking 一个方法被称为阻塞的,即这个方法在其演进过程中不能正常运行直到其他(占有锁的)线程释放。 也就是普通的synchronized方法,同一时间内只有一个线程占有了锁,其他线程只能等待。但是这个占有锁的线程并不一定真的在工作(可能被挂起了)。 无锁,lock-free An al
阅读全文
摘要:在b站上大概的看完了Dan Boneh的密码学,对现代密码学总算有了一个粗浅的认识。 总算能在纸上手写RSA公式并且证明之了,蛤蛤。 总体的感触就是,现代密码学是一个非常博大精深的体系,我等程序员最重要的是学习正确的使用别人已经编写好的密码库,千万不要妄图自己实现一套密码体系。否则各种奇形怪状的攻击
阅读全文
摘要:1. Diffie-Hellman协议: 假定g是集合G的生成元,G有n个元素。 Alice随机选取1-n中的一个数a,并公布ga为公钥 Bob随机选取1-n中的一个数b,并公布gb为公钥 那么gab就是Alice与Bob之间的私钥 从公钥中提取私钥,是一个离散对数问题,难以解决。 裸的Diffie
阅读全文
摘要:古龙有《七种武器》,java里有四种引用。 下文主要是对 《understanding-weak-references》这一博文的重点进行翻译 强引用,strong references StringBuffer buffer = new StringBuffer() 像上面这样的就是强引用,只要某
阅读全文
摘要:分代gc java的堆内存主要分为young generation与old generation,这两块分开回收。这就是所谓的分代gc 其中young generation又分为一个eden space与两个survivor space(From与To)。默认情况下,eden space占young
阅读全文
摘要:RSA算法的工作流程 1. 生成公钥私钥 生成两个素数p和q,计算n=p*q,计算φ(n)=n-p-q+1,然后生成e与d,使 e * d = 1 mod φ(n)。 然后以(n, e)作为公钥,(n,d)作为私钥,其他的p,q,φ(n)可以舍弃。 2. 加密 明文为c 密文r = ce mod n
阅读全文
摘要:参考资料:http://blog.csdn.net/youaremoon/article/details/47910971 主要思想:buddy allocation,jemalloc
阅读全文
摘要:0. Zn代表{0,1....n-1}的集合 1. 模运算符合交换律结合律 2. gcd(greatest common divisor),可以由扩展欧几里得算法快速得到。 3. 模逆(modular inversion),在Zn上,x的模逆为y,那么x*y=1 mod n 4. Zn上如果x有模逆
阅读全文
摘要:
阅读全文
摘要:1. 使用可信第三方(Trusted third parties)进行密钥交换。 a. Alice与TTP之间的密钥是K1,Bob与TTP之间的密钥是K2。 b. Alice向TTP发起一个与Bob交换密钥的请求。TTP生成一个随机密钥Kab,然后将Kab用K1加密,得到E1,将Kab用K2加密,得
阅读全文
摘要:完结对<Cryptography I>的学习。预计时间:3月底。 实际完成时间:3月23日 读完<垃圾回收的算法与实现>。预计时间:4月底 勉强读完一半,发现功力不够,暂时封存 读完 《图解TCP/IP》 完成时间:5月16日 读完<TCP/IP详解 卷1:协议> 完成时间:5月17日(读完关键章节
阅读全文
摘要:转载于知乎 作者:Ted Mosby链接:https://www.zhihu.com/question/21535747/answer/144884632来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 Hotspot JVM实现包括了Serial GC, Parall
阅读全文
摘要:1. KDF(密钥推导函数,key derivation function),根据用户输入的一个初始密钥来生成一系列的后续密钥。可以使用PRF来生成 2. 可以用salt与slow hash function来加强安全 3. 在数据库里存储密文,然后用加密后的密文来做查询,可以让数据保存者无法知道存
阅读全文
摘要:1. 认证加密,Alice与Bob共享一个密钥k,Alice可以发送密文E给Bob,Bob可以确定接收到的E一定是拥有密钥k的Alice产生的。而不是攻击者随便产生的。 2. 认证加密必须能抵挡住选择密文攻击 3. 认证加密无法抵挡重放攻击 4. tls,两边维护一个相同的自增计数器,可以抵挡重放攻
阅读全文
摘要:1. 生日攻击,如果hash函数可以产生n bit的结果,那么生日攻击的时间复杂度在O(nn/2)这个量级。以比特币使用的SHA256为例,其hash结果为256bit,那么如果想完成一次生日攻击,那么需要计算并保存2^128次SHA256计算的结果。而现在比特币的全网算力不到4E Hash/s,也
阅读全文
摘要:1. ECBC-MAC,需要一对密钥k与k1,然后将明文分组,用cbc模式对明文分块加密,将最后的密文块再用k1进行加密,即可得到结果 2. NMAC,需要一对密钥k与k1,然后将明文分组,用k加密第一组明文,得到k',然后用k'加密第二组明文,得到k'',依次类推,最后得到k(n) ,然后用k1对
阅读全文
摘要:1. 如果加密算法是确定性的(相同的明文产生相同的密文),那么它对于选择明文攻击是不安全的 2. 随机化加密,每次对相同的密文加密,会产生不同的结果 AES加密模式 ecb:明文分块计算,块与块之间没有影响,可以并发加密。但是可能暴露明文的模式 cbc:每个明文分块都与上一个密文分块异或,然后再行加
阅读全文
摘要:1. 伪随机置换(PRF,Rseudo Random Permutaion)3DES/AES,K*X -> X(a. 可以高效计算,b. PRF函数是一个一一映射的函数,c. 存在有效的逆向算法) 2. Feistel网络 3. 对于AES,Intel的CPU中内置了相关的指令集,可以在一个时钟周期
阅读全文