现代密码学
观赏
github:https://github.com/happyxiaotao
展开
-
密码学之大数减法
大数减法是密码学中比较基础的算法。人人都要掌握。实现原理:1,采用字符数组存储输入的两个大数str1、str2。2,设置一个能够容纳最大大数位数+1的字符数组result。3,利用flag判断str1是否大于str2.flag=1表示大于,flag=0表示小于,flag=0表示等于。4,较大数先与result同时从后往前遍历,较大数在result对应位置赋上较大数对应位原创 2017-03-29 00:47:18 · 670 阅读 · 0 评论 -
密码学之仿射加密解密算法
仿射变换的加密解密分别是:c = Ea,b(m) ≡ a, + b(mod 26)m = Da,b(c) ≡ a^-1(c - b)(mod 26)其中,a,b是密钥,为满足0≤a,b≤25和gcd(a,26)等于1的整数。其中gcd(a,26)表示a和26的最大公因子,gcd(a,26)=1表示a和26是互素的,a^-1表示a的逆元,即a^-1*a ≡ 1mod26。原创 2017-03-09 15:38:04 · 44900 阅读 · 10 评论 -
密码学之凯撒加密解密算法
在密码学中,凯撒(Caeser)密码(或称恺撒加密、恺撒变换、变换加密)是一种最简单且最广为人知的加密技术。它是一种替换加密的技术。这个加密方法是以恺撒的名字命名的,当年恺撒曾用此方法与其将军们进行联系。但是和所有的利用字母表进行替换的加密技术一样,恺撒密码非常容易被破解,而且在实际应用中也无法保证通信安全。所以恺撒密码通常被作为其他更复杂的加密方法中的一个步骤。凯撒密码的加密代换原创 2017-03-13 20:35:06 · 12598 阅读 · 0 评论 -
密码学之大数左移与右移
大数左/右移:大数每个位上的数字的二进制的后4位进行旋转左移或右移.原创 2017-03-31 23:10:04 · 1332 阅读 · 0 评论 -
密码学之大数乘法
大数相乘,就是指数字比较大,相乘的结果超出了基本类型的表示范围,通常将其保存在一个字符串中来计算。所以这样的数不能够直接做乘法运算。在学习密码学的过程中,当从用户界面接受的数据字符串CString无法使用atoi或atol转化为对应的数字时,就需要使用大数乘法。原创 2017-03-13 13:15:27 · 2043 阅读 · 0 评论 -
密码学之大数加法
大数加法是密码学中比较基础的算法。人人都要掌握。实现原理:1,采用字符数组存储输入的两个大数str1、str2。2,设置一个能够容纳最大大数位数+1的字符数组result。3,str1与result同时从后往前遍历,str1在result对应位置赋上str1的值(str1个位给result个位赋值,str1十位给result十位赋值。。。)4,str2与result原创 2017-03-28 22:12:09 · 913 阅读 · 0 评论