摘要: 一、概述 椭圆曲线加密算法依赖于椭圆曲线理论,后者理论涵盖的知识比较深广,而且涉及数论中比较深奥的问题。经过数学家几百年的研究积累,已经有很多重要的成果,一些很棘手的数学难题依赖椭圆曲线理论得以解决(比如费马大定理)。 本文涉及的椭圆曲线知识只是抽取与密码学相关的很小的一个角落,涉及到很浅的理论的知 阅读全文
posted @ 2018-05-22 08:40 Qcer 阅读(21455) 评论(7) 推荐(9) 编辑
摘要: 一、导读 Paxos算法的流程本身不算很难,但是其推导过程和证明比较难懂。在Paxos Made Simple[1]中虽然也用了尽量简化的流程来解释该算法,但其实还是比较抽象,而且有一些细节问题没有交代,读完也只能了解到算法的一个大致轮廓。在《从Paxos到Zookeeper 分布式一致性原理与实践 阅读全文
posted @ 2018-04-15 15:18 Qcer 阅读(993) 评论(0) 推荐(1) 编辑
摘要: Github上的算法repo地址:https://github.com/qcer/Algo-Practice (如果你觉得有帮助,可以给颗星星收藏之~~~) 一、Java实现部分 参见随笔分类的算法部分: http://www.cnblogs.com/qcblog/category/1096247. 阅读全文
posted @ 2017-07-09 20:14 Qcer 阅读(1780) 评论(0) 推荐(0) 编辑
摘要: 一、数据分布 在分布式环境下,数据分布也即是将数据拆分,存放到不同节点上,是分布式系统中的基本问题之一。不同的数据分布方式需要权衡诸如伸缩性、数据倾斜(负载的均衡)、元数据维护等问题。没有一种万能的方案能够解决所有的问题,不能脱离应用场景谈优劣,应该要针对不同的应用场景选择合适的方案。 一般而言,可 阅读全文
posted @ 2018-07-24 08:43 Qcer 阅读(3958) 评论(3) 推荐(2) 编辑
摘要: 一、概述 RSA算法是1977年由Ron Rivest、Adi Shamir 和 Leonard Adleman三人组在论文A Method for Obtaining Digital Signatures and Public-Key Cryptosystems提出的公钥加密算法。由于加密与解密使 阅读全文
posted @ 2018-05-21 09:00 Qcer 阅读(6213) 评论(0) 推荐(6) 编辑
摘要: 一、概述 Diffie-Hellman密钥协商算法主要解决秘钥配送问题,本身并非用来加密用的;该算法其背后有对应数学理论做支撑,简单来讲就是构造一个复杂的计算难题,使得对该问题的求解在现实的时间内无法快速有效的求解(computationally infeasible )。 理解Diffie-Hel 阅读全文
posted @ 2018-05-17 08:06 Qcer 阅读(32237) 评论(3) 推荐(9) 编辑
摘要: 导读 数论是一门研究自然数之间的关系和规律的学科,普遍认为是纯数学的分支,但并非是完全没有实用性的学科。现代密码学中用到了很多基础数论中的结论,特别是公钥加密体系(例如RSA算法,椭圆曲线加密等)。 本文目的在于梳理现代密码学中常用到的基础数论方面的定理和结论。其中包括素数的特性、欧几里德算法、线性 阅读全文
posted @ 2018-05-16 07:31 Qcer 阅读(8592) 评论(2) 推荐(6) 编辑
摘要: 本文旨在简单探索线性同余发生器的一些原理和特点,很多思路借鉴于TAOCP,如果想要深入的探索这方面的知识,建议直接阅读原著。 一、公式化定义与线性同余序列的周期 在离散数据及其应用中,如果 那么,称a模m同余b(或者称模m时,a等价于b),可以记为 而线性同余式就可以这样表示: 线性同余发生器与上面 阅读全文
posted @ 2018-04-27 09:29 Qcer 阅读(14842) 评论(0) 推荐(1) 编辑
摘要: 对于实现了Serializable接口的类,在对其对象进行序列化的时候,会自动将该对象的所有实例变量依次进行序列,特别是在某个实例变量应用到了其他对象时,表现为递归式的序列化机制。这种“一概而全”序列化方式往往不是我们实际想要的,因此有必以自定义的方式来序列化(具体地讲比如控制某些实例变量可以序列化 阅读全文
posted @ 2018-03-06 21:01 Qcer 阅读(627) 评论(0) 推荐(0) 编辑
摘要: 一、概述 wiki上的解释: A universally unique identifier (UUID) is a 128-bit number used to identify information in computer systems. 128位的UUID也并非没有重复的可能,理论证明这个 阅读全文
posted @ 2018-02-27 11:23 Qcer 阅读(1992) 评论(0) 推荐(0) 编辑
摘要: 一、概述 散列算法有两个主要的实现方式:开散列和闭散列,HashMap采用开散列实现。 HashMap中,键值对(key-value)在内部是以Entry(HashMap中的静态内部类)实例的方式存储,散列表table是一个Entry数组,保存Entry实例。 对于冲突的情况,在开散列中,如果若干个 阅读全文
posted @ 2018-02-26 11:24 Qcer 阅读(6096) 评论(0) 推荐(0) 编辑