密码学
文章平均质量分 95
qmickecs
这个作者很懒,什么都没留下…
展开
-
数字签名原理及其应用
签名的作用无非就是证明某个文件上的内容确实是我写的/我认同的,别人不能冒充我的签名(不可伪造),我也不能否认上面的签名是我的(不可抵赖)。我们知道,手写签名之所以不能伪造,是因为每一个人的笔迹都是独一无二的,即使模仿,也可以通过专家鉴定分别出来。而不能抵赖,是因为每个人的笔迹都有固定特征,这些特征是很难摆脱的。正是这两点特性使得手写签名在日常生活中被广泛承认,比如签合同、借条等等。而数字签名原创 2017-06-25 15:40:34 · 55067 阅读 · 12 评论 -
谈谈有限域那些事儿
在本人的其它博文中,介绍了主流的三种公钥加密算法:RSA、离散对数加密和椭圆曲线加密。出于可读性上的考虑,文章中尽量减少了代数相关的描述。实际上,这三者都是基于有限域的,如果能从抽象代数角度去解释,会更简洁。原创 2017-08-17 23:12:31 · 17978 阅读 · 6 评论 -
RSA算法之实现篇(Python版)
RSA中的密钥长度指的是公钥的长度,目前主流的公钥长度为1024、2048以及4096位。由于已经有768位公钥被成功分解的先例,所以低于1024位的公钥都被认为是不安全的。而C++自带的基本类型远远无法满足RSA的运算需求,所以RSA算法的实现必须依赖于高精度整型运算。本文旨在介绍RSA算法的实现流程,不会对于涉及到的每一个算法进行深入介绍,如果需要进一步了解的可以参考本博客的其它相关文章。原创 2017-06-21 22:30:58 · 10011 阅读 · 3 评论 -
离散对数和椭圆曲线加密原理
序言现代公钥加密系统中,常用的加密算法除了RSA还有离散对数加密和椭圆曲线加密。这两者原理比较相似,在这里一并介绍。离散对数问题我们在中学里学的对数问题是指, 给定正实数aaa和axaxa^x,求xxx。也就是计算x=logaaxx=logaaxx=\log_a{a^x}。这是实数域上的对数问题,不是什么难算的东西,随便按一下计算器结果就出来了。而离散对...原创 2017-08-03 11:35:05 · 22521 阅读 · 24 评论