人较笨且记性不好,故记录在此.折叠代码打不开请F5.本博中很多是转载收录其他网友的文章(原文地址请见博文末尾),所有权为原作者所有!!!
此博客已不再更新和维护,欢迎关注我的github新博客

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: :: 管理 ::

2011年9月18日

摘要: 简介: RSA算法是一种非对称密码算法,所谓非对称,就是指该算法需要一对密钥,使用其中一个加密,则需要用另一个才能解密。 RSA的算法涉及三个参数,n、e1、e2。 其中,n是两个大质数p、q的积,n的二进制表示时所占用的位数,就是所谓的密钥长度。 e1和e2是一对相关的值,e1可以任意取,但要求e1与(p-1)*(q-1)互质;再选择e2,要求(e2*e1)mod((p-1)*(q-1))=1。 (n,e1)为公钥对,(n,e2)是密钥对。 RSA加解密的算法完全相同,设A为明文,B为密文,则:A=B^e1 mod n;B=A^e2 mod n; e1和e2可以互换使用,即:A... 阅读全文
posted @ 2011-09-18 16:31 子坞 阅读(969) 评论(0) 推荐(0) 编辑

摘要: 概念: 模运算即求余运算。“模”是“Mod”的音译,模运算多应用于程序编写中。 Mod的含义为求余。模运算在数论和程序设计中都有着广泛的应用,从奇偶数的判别到素数的判别,从模幂运算到最大公约数的求法,从孙子问题到凯撒密码问题,无不充斥着模运算的身影。虽然很多数论教材上对模运算都有一定的介绍,但多数都是以纯理论为主,对于模运算在程序设计中的应用涉及不多。 模幂运算则是指先进行幂运算,在进行模运算。算法:1)描述: 根据运算规则ab % p = ((a % p)b) % p ,我们知道3333^5555(%10)= 3^5555(%10)。由于3^4 = 81,所以3^4(%10)= 1。 ... 阅读全文
posted @ 2011-09-18 16:18 子坞 阅读(6169) 评论(0) 推荐(0) 编辑

摘要: 概念: 最小公倍数(Least Common Multiple,缩写L.C.M.),如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数,对于两个整数来说,指该两数共有倍数中最小的一个。计算最小公倍数时,通常会借助最大公约数来辅助计算。 两个数的最大公因数和最小公倍数有着下列关系: 最大公因数×最小公倍数=两数的乘积 即(a、b)×[a、b]= a×b算法(代码):View Code 1 #include <stdio.h> 2 #include <iostream> 3 #include <math.h> 4 5 阅读全文
posted @ 2011-09-18 14:00 子坞 阅读(1351) 评论(0) 推荐(0) 编辑

摘要: 概念: 最大公约数(greatest common divisor,简写为gcd;或highest common factor,简写为hcf),指某几个整数共有因子中最大的一个。 如果有一个自然数a能被自然数b整除,则称a为b的倍数,b为a的约数。几个自然数公有的约数,叫做这几个自然数的公约数。公约数中最大的一个公约数,称为这几个自然数的最大公约数。算法:1、描述(欧几里德算法):欧几里德算法又称辗转相除法,用于计算两个正整数a,b的最大公约数。 其计算原理依赖于下面的定理: 定理:gcd(a,b) = gcd(b,a mod b) (a>b 且a mod b 不为0) 证明:a可以.. 阅读全文
posted @ 2011-09-18 13:28 子坞 阅读(957) 评论(0) 推荐(0) 编辑

摘要: 概念: 素数又称质数。指在一个大于1的自然数中,除了1和此整数自身外,没法被其他自然数整除的数,素数个数是无穷的。换句话说,只有两个正因数(1和自己)的自然数即为素数。比1大但不是素数的数称为合数。1和0既非素数也非合数。合数是由若干个质数相乘而得到的。所以,质数是合数的基础,没有质数就没有合数。这也说明了前面所提到的质数在数论中有着重要地位。历史上曾将1也包含在质数之内,但后来为了算术基本定理,最终1被数学家排除在质数之外,而从高等代数的角度来看,1是乘法单位元,也不能算在质数之内,并且,所有的合数都可由若干个质数相乘而得到。判断素数的算法(源码):View Code 1 /******.. 阅读全文
posted @ 2011-09-18 11:51 子坞 阅读(466) 评论(0) 推荐(0) 编辑