RSA非对称密码算法学习笔记

文章详细介绍了RSA非对称密码算法的基础,包括欧几里得辗转相除法用于求最大公因数,因子分解的困难性,费马小定理和欧拉定理在密码学中的应用,以及模反元素的存在性。这些概念是RSA算法的核心,用于确保加密和解密的安全性。此外,还讨论了RSA在公钥加密和数字签名中的具体应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

学习来源:B站up:DoraHcaks

学习路径:密码学7.1|RSA非对称密码算法_哔哩哔哩_bilibili

1.基础数学知识

1.1欧几里得辗转相除法

假设正整数a≥b,求a和b的最大公因数gcd(a, b) = ?

        (1)如果a mod b = 0, 即余数 r = 0,则gcd(a, b) = b

        (2)否则,令 r = a mod b,gcd(a, b) = gcd(b, r),递归直至 r = 0,满足情况(1)

举例:a = 254, b = 8

        254 = 8 * 31 + 6,r = 6 ≠ 0 => gcd(254, 8) = gcd(8, 6)

            8 = 6 * 1 + 2,  r = 2 ≠ 0 =>     gcd(8, 6) = gcd(6, 2)

            6 = 2 * 3,        r = 0 = 0 => gcd(254, 8) = gcd(8, 6) = gcd(6, 2) = 2

多项式时间内可解的问题(P问题)

已知大合数a,求小于a的大素数b,使得a与b互素,即gcd(a, b) = 1。

该问题能够使用欧几里得辗转相除法快速求解。

        随机选择一个大素数b,如果即gcd(a, b) ≠ b,则gcd(a, b) = 1

        因此,这样的大素数有很多,且很容易找。

1.2 因子分解困难问题

大数的因子分解问题,非常困难!

初始化:随机选择2个不同的大素数p, q,计算n = p * q。

        公开 n,求p, q

举例1:素数p = 5,q = 7,计算n = p * q = 35.

        已知:n = 35,求p, q

        答:暴力搜索,令p, q = 2, 3 ....

举例2:保密数据p, q,公开数据n

        公开 n = 8239121061250502943937 = p * q

for(i >= 2 && i <= √n) {
    for(j >= 2 && j <= √n) {
        if (8239121061250502943937 == i * j) {
            System.out.println(i, j);
        }
    }
}

如果是2048bit的大整数,n = _{}2^{2048}- 110 + 1,则计算机需要100年以上时间破解。不可行。

因子分解是NP问题:求解时,需要for循环,暴力搜索,需要指数时间;但是,一旦已知解,则可以快速验证解的正确性

1.3 费马小定理

若p为素数,a是正整数且不能被p整除,互素(互质),则

3^{7-1}\equiv 1 mod 7

注:证明视频里有,如果有需要可以去视频学习,这里省去

举例3:p = 7, a = 3,3不能被7整除,根据费马小定理

3^{7-1}\equiv 1 mod 7

公式推导:

3^{6}mod 7=(3*3)(3*3)(3*3)mod7 = 9*9*9mod7=729mod7=1

 举例4:p = 11, a = 5,5不能被11整除,根据费马小定理

5^{11-1}\equiv 1 mod 11

公式推导:

5^{10} mod 11=9765625mod11=1

1.4 欧拉函数

小于n,且与n互素的正整数个数,记为\varphi (n),习惯上\varphi (1) = 1

结论:如果n是素数,则\varphi (n)=n-1

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值