非对称密码体制.pptVIP

  • 3
  • 0
  • 约9.75千字
  • 约 46页
  • 2019-12-22 发布于广东
  • 举报
* Here walk through example using “trivial” sized numbers. Selecting primes requires the use of primality tests. Finding d as inverse of e mod ?(n) requires use of Inverse algorithm (see Ch4) * Rather than having to laborious repeatedly multiply, can use the square and multiply algorithm with modulo reductions to implement all exponentiations quickly and efficiently (see next). * * 费马大定理: 当整数n 2时,关于x, y, z的不定方程 x^n + y^n = z^n. 无正整数解 * * * * 计算 ?(n) 需要计算与n不互素的元素的个数 例如 ?(37) = 36 ?(14) = #{1,3,5,9,11,13}=6 对素数p, ?(p) = p-1 对 n=pq (p, q 是素数) ?(n) = (p-1)(q-1) 例如?(14) = (2–1)×(7–1) = 1×6 = 6 欧拉函数φ(n) * 欧拉函数φ(n) 定理:p和q是素数, n=p*q, φ(n)= φ(p)φ(q)=(p-1)(q-1) 证明: 考虑余数集合{0, 1, …, (pq-1)}中不与n互素的余数集合是{p, 2p, …, (q-1)p}, {q, 2q, …, (p-1)q}和0, 所以 φ(n)= pq-[(q-1)+(p-1)+1] =pq-(p+q)+1 = (p-1)(q-1) =φ(p)φ(q) N 的分解 ?(n)的求解 * Eulers Theorem a generalisation of Fermats Theorem (欧拉定理): 对任意互素的a和n, 有 a?(n) ? 1 mod n eg. a=3;n=10; ?(10)=4; hence 34 = 81 = 1 mod 10 a=2;n=11; ?(11)=10; hence 210 = 1024 = 1 mod 11 * 欧拉定理的等价形式 aφ(n)+1 ≡ a (mod n) 同费马小定理一样,欧拉定理前一种形式要求a,n互素。等价形式则没有要求。 用于证明RSA算法的正确性。 * 素性检测 Primality Testing 在建立RSA密码体制的过程中,如何生成大的“随机素数”? 首先生成大的随机整数,然后利用概率算法(Miller-Rabin算法)来检测它们的素性 可行性分析? 素数个数定理: 为小于等于N的素数的个数 问: 1024bit的N, p和q为512,则一个随机512bit整数为素数的概率约为? 限定奇数,概率加倍: 随机算法的分类类型 Las Vegas Monte Carlo Las Vegas 计算结果总是对的或最佳的. 运算时间是随机的, 但运行时间有界 也许不给出一个回答,但任何回答总是正确的 Monte Carlo 运算结果可能不正确或不是最佳 结果不正确或非最佳出现的概率有界 可以通过多次运行该算法可使得出错的概率变的很小 (相当于多次的独立实验) 总是给出一个回答,但回答也许不正确 偏是(yes-biased):“是”回答总是正确的,但“否”回答也许是不正确的 偏否(no-biased):“否”回答总是正确的,但“是”回答也许是不正确的 * 素性检测 密码学中常常需要寻找大素数 传统的方法是用试除法来过滤素数 即依次除小于该数平方根的所有素数 这种方法只对较小的数有用 可以采用基于素数特性的统计素性测试方法 其中所有的素数都满足素数特性 但是有一些合数也满足该素数特性,这样的合数称为“伪素数” * Miller-Rabin素性检测算法 这是一种基于费马小定理的方法 假设n是素数, 则有an-1 = 1 mod n(反之不成立) 背景:对于候选奇整数n=3, 偶数(n-1)可表示为 n-1 = 2kq k0, q是奇数 为证明这一点,用2去除偶数(n-1),直至所得结果为奇数q,此处共做k次除法;如果n

文档评论(0)

1亿VIP精品文档

相关文档