素数是数论的核心
关于素数的基本信息从小学就开始接触,在这里不做赘述
一个函数f满足下列条件,则称该函数为单向函数
简而言之就是一个函数正向运算简单,逆运算十分困难
一个可逆函数满足下列条件则称之为单项陷阱门函数
令质数p满足p-1含有另一大质数q (q整除p-1)及一整数g, 1
若给定整数x, 求y = gx mod p, 最多需要Llog2x」+w(x)-1次乘法, w(x)为x中所有1的个数。如x =15, 即
x =(1111)2, w(x)=4, 则g15 =((g2)g)2·g)2·g mod p, 只需要3 + 4 -1=6次乘法。
但是若给定p, g及y, 求x, 则为DLP问题, 最快方法需要L(p)=exp{(lnpln(lnp))½}次运算。
当p=512位时, L(p)约为2256≈1077, 计算上不可行, 因为2100≈1030, 计算要1016年。
给定大素数 p和q, 求n = p×q, 只要一次乘法
给定n, 求p和q, 即为因数分解问题(FAC), 最快方法需要 T(n) = exp {c(ln n ln (ln n))½} 次运算, 其中c为大于1的正整数。若p≈n, 解离散对数比因数分解难。
给定有限个自然数序列集合B=(b1,b2,…bn)及二进制序列x=(x1,x2,…xn), xi∈(0,1), 求S=∑xibi最多只需n-1次加法;但若给定B和S, 求x则非常困难。
穷举时有2n种可能, 当n很大时为计算上不可行。
Garey和Johnson证明, 背包问题是NP问题
单向函数本身在密码学中应用不大,但是如果具有交换性,则作用巨大
交换性:令Z为一集合,F为将Z映射到Z本身的函数集合令z∈Z,Fx(z)表示此集合的第x函数,若Fx(Fy(z))=Fy(Fx(z)),则称此函数具有交换性
若p是素数,a是正整数且不能被p整除,则 mod p =1,即 mod p=a
证明:
因为{a mod p, 2a mod p, ..., (p-1)a mod p}是{1, 2, ..., (p-1)}的置换形
所以(a x 2a x ...x(p-1)a)mod p = 1x2x3x...(p-1) =(p-1)!
又因为(a x 2a x ...x(p-1)a)= (p-1)! x
所以原式得: (p-1)! x mod p = (p-1)!
约掉阶乘项,得: mod p = 1
例(1)计算 mod 11
根据定理直接可得原式为1
(2)计算 mod 11
当整数n >2时,关于x, y, z的方程 x^n + y^n = z^n 没有正整数解
φ(n)是比n小且与n互素的正整数的个数,即模n的缩剩余系中元素之个数
证明:
考虑余数集合{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 = **...* 则
φ(n) =
对任意互质的a和n有:
mod n = 1,即 ≡ 1 (mod n)
mod n = a ,即 ≡ a (mod n)
(1)若 n 是素数,根据欧拉函数和费马小定理,則上式成立;
若p是素数, a是正整数且不能被p整除, 则ap-1 mod p=1
(2)所有小于 n ,且与 n 互质的正整数的集合 即每一个元素都有gcd(xi,n)=1。用a与R中的每个元素模n相乘:
S是R的一个排列,因为
Chinese Remainder Theorem 也称为孙子定理
某一范围内的整数可以通过它对两两互素的整数取模得到的余数重构得到
典型应用就是韩信点兵
今有物不知其数, 三三数之剩二, 五五数之剩三, 七七数之剩二, 问物几何
幂运算是相对容易的,求解离散对数通常是难解问题
离散对数是包括Diffie-Hellman密钥交换和数字签名(DSA)在内的许多公钥算法的基础