实验三-流密码加密实验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验三 密码学数学基础实验 【 实验目的】 掌握密码学相关的数学基础知识 理解大数运算、素性测试、模幂、原根、求逆和二次剩余等的计算过程 【 实验原理】 一、大 数运算 大多数运算器只支持小于 64 位的整数运算,无法进行加密算法的运算。为满足加密算法 的需要,可通过建立大整数运算库来解决这一问题。通常通过以下两种方式进行处理: (1) 将大整数当作字符串处理,即将大整数用 10 进制字符数组表示;这种方式便于理解, 但效率较低。 (2) 将大整数当作二进制流进行处理;计算速度快。 二、素 性测试 Monte Carlo 算法和 Las Vegas 算法均为素性测试的算法。 (1) Monte Carlo 算法 Monte Carlo 算法又称为概率素性检测算法,算法描述如下: 输入:p 为一个正整数; 输出:若 p 为素数,输出 YES;否则输出 NO。 Prime_Test(p) flag=0; 重复log2p次: 在(1,p-1]区间上均匀随机的选取 x; 如果 gcd(x,p)1 或 x(p-1)/2 mod p不等于+1或-1 ,return(NO); 如果 flag=0 且 x(p-1)/2 ≡-1 mod p ,flag=1; 结束重复; 如果 flag=0,即在重复中 x(p-1)/2 ≡-1 mod p 没有出现过,return(NO); return(YES)。 (2) Las Vegas 算法 Las Vegas 算法又称为素性证明,算法描述如下: 输入:p 为一个正基数;q1,q2,?,qk 为 p-1 的全体素因子,其中 k≤ log2p ; 输出:若 p 为素数,输出 YES;否则输出 NO。 Prim Certify(p,q[k]) 在区间[2,p-1]上均匀随机的选取 g for(i=1,i++,k)do 如果g(p-1)/qi≡1 mod p,输出NO_DECISION并终止程序; 如果g(p-1)/qi mod p 不等于1,输出NO并终止程序; 输出YES并终止程序。 三、模 幂 对于 b,cm,模幂 bc mod m 按照整数幂的通常定义,b 自乘 c 次,但要模 m;模幂算法描 述如下: 输入:整数 b、c、m,其中 b0,c≥0,m1; 输出:bc mod m mod_exp(b,c,m) if(c=0) return (1); if (c mod 2=0) return(mod_exp(b2 mod m,c/2,m));其中 c/2 表示 c 除以 2 取整; return (b·mod_exp(b2 mod m,c/2,m))。 四、原根 设m是正整数,a是整数,若a模m的阶等于φ(m),则称a为模m的一个原根。(其中φ(m)表示m的欧拉函数)φ(m),即小于等于 m 的正整数中与 m 互质的正整数的个数,使得ad≡1(mod m)。 由此,在(a,m)=1 时,定义 a 对模 m 的指数 ordm (a) 为使 ad≡1(mod m) 成立的 最小的正整数 d。由前知 ordm (a) 一定小于等于φ(m) ,若 ordm (a)= φ(m) , 则称 a 是模 m 的原根。 五、求逆 乘法逆元的定义为:对于w∈Zn ,存在于x∈Zn,使得于wx≡1 mod n ,则 w 是可逆的, 称 x 为 w 的乘法逆元,记为 x=w-1 ;其中 Zn 表示小于 n 的所有非负整数集合。 通常通过扩展欧几里得算法和费马小定理求乘法逆元,此处使用扩展欧几里得算法。 扩展欧几里得算法的定义为:如果整数 f1,gcd(d,f)=1,那么 d 有一个模 f 的乘法逆元; 即对于小于 f 的正整数 d,存在一个小于 f 的正整数 d-1 ,使得d×d-1 ≡1 mod f 。扩展欧几里 得算法的具体描述如下: ExtendedEUCLID(d,f) (1) (X1,X2,X3)←(1,0,f);(Y1,Y2,Y3)←(1,0,d)。 (2) 若 Y3=0,返回 X3=gcd(d,f);无逆元。 (3) 若 Y3=1,返回 Y3=gcd(d,f);Y2=d-1mod f。 (4) Q= [x3/y3] 。 (5) (T1,T2,T3)←(X1-Q·Y1,X2 -Q·Y2,X3- Q·Y3)。 (6) (X1,X2,X3)←(Y1,Y2,Y3)。 (7) (Y1,Y2,Y3)←(T1,T2,T3)。 (8) 返回(2)。 六、二次剩余 二次剩余的定义为:a 与 p 互素,p 是奇素数

文档评论(0)

bhl0572 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档