美文网首页
数学之美 第十七章 RSA加密算法

数学之美 第十七章 RSA加密算法

作者: A黄橙橙 | 来源:发表于2018-08-20 15:52 被阅读0次

    预备知识:

    欧拉函数

    在数论,对正整数n,欧拉函数是小于或等于n的正整数中与n互质的数的数目(其中φ(1)=1)

    通式为:

    其中p1,p2...pn为x所有质因数,x是不为0的整数。

    特殊:若n为质数p的k次幂,

    因为除了p的倍数外,其他数都与n互质。
    欧拉函数是积性函数——若m,n互质,φ(mn)=φ(m)φ(n)
    当n为奇数时,φ(2n)=φ(n)
    当n为质数时,φ(n)=n-1

    P.S.积性函数:对于任意互质的整数a和b有性质f(ab)=f(a)f(b)的数论函数。
    完全积性函数:对于任意整数a和b有性质f(ab)=f(a)f(b)的数论函数。
    性质:
    一 与算数基本定理有关。若将n表示为质因子分解式 n = p1a1p2a2 ...pnan ,则有f(n)=f(p1a1)f(p2a2 )...f(pnan)
    二 若r为积性函数且有f(pn)=fn(p),则f为完全积性函数。

    欧拉定理(数论)

    在数论中,欧拉定理,(也称费马-欧拉定理)是一个关于同余的性质。欧拉定理表明,若n,a为正整数,且n,a互质,则:

    应用:用来简化幂的模运算。
    例如,计算7222的个位数。
    分析:本质上就是求7222≡x(mod 10),而容易知道φ(10)=4。
    7222=(74)55 72≡x(mod 10)
    72≡x(mod 10)
    9
    所以答案就是9.

    P.S. 费马小定理
    a是不能被质数p整除的正整数,则有a(p-1) ≡ 1(mod p),他还有另外一个描述,ap ≡ a(mod p)
    证明,p是质数,所以 φ(p) = p-1,带入欧拉即可。
    应用:

    费马小定理应用

    密码学、信息论

    对称加密,即对称算法:又是又叫传统密码算法,就是加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称算法中,加密解密密钥是相同的。这些算法也叫密码密钥算法或单密钥算法。
    非对称算法:也叫公开密钥加密,它是用两个数学相关的密钥对信息进行编码。其中一个密钥为公开密钥(公钥),另一个叫私有密钥(私钥)。

    非对称算法运用过程:
    1)乙方生成两把密钥,公钥是公开的,任何人都可以获得,私钥是保密的。
    2)甲方获取乙方的公钥,然后它对信息加密。
    3)乙方得到加密信息后,用私钥解密。

    RSA算法

    1)选择两个很大的素数P和Q 。
    然后计算N=PQ和φ(N)=(P-1)(Q-1)
    2)找到一个与φ(N)互质的整数E(也叫“模范元素”)
    3)找一个整数D,使得ED ≡ 1 (mod φ(N))

    其中公钥是(E,N),密钥是(D,N)
    设密文为X,则
    加密:XE ≡ Y (mod N)
    获得Y
    解密:YD ≡ X (mod N)

    正确性讨论:
    第一,不能直接通过公钥(E,N)推出X是不科学的,会有无数个X(比如23 ≡ 1 (mod 3),你可能推出X=2,4...)
    第二,必须尝试推出D
    1)ED ≡ 1 (mod φ(N)),只有知道E和φ(N),才能推D
    2)φ(N)=(P-1)(Q-1),只有知道P和Q,才能推φ(N)
    3)N=PQ,只有对N做因数分解,才能推出P和Q

    对大整数的因数分解是一件非常困难的事情。

    RSA算法的证明

    要证明私钥解密出来的答案一定是正确的X,即证明


    证明

    相关文章

      网友评论

          本文标题:数学之美 第十七章 RSA加密算法

          本文链接:https://www.haomeiwen.com/subject/gaxliftx.html