Contents

RSA算法原理总结

rsa算法流程

欧拉定理代码验证:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
  '欧拉函数;求比n 小的正整数中与n互质的数有多少个'
def euler_phi(n):
    result = n
    p = 2
    while p * p <= n:
        if n % p == 0:
            while n % p == 0:
                n //= p
            result -= result // p
        p += 1
    if n > 1:
        result -= result // n
    return result
'''
验证欧拉定理的函数
'''
def compute_modular_exponentiation(a, phi_n, n):
    result = pow(a, phi_n, n)
    return result


'''
验证欧拉定理:若a与n互质,则a^{phi_n} % n 是否等于1
'''
print(compute_modular_exponentiation(3, euler_phi(11), 11))
print(compute_modular_exponentiation(4, euler_phi(11), 11))
print(compute_modular_exponentiation(8, euler_phi(11), 11))


'''验证欧拉函数φ(n)=(p−1)⋅(q−1)'''
print(euler_phi(15), '(3-1)*(5-1)', 2*4)
print(euler_phi(55), '(5-1)*(11-1)', 4*10)


'''
正如大家所知,代数几何是现代数学的主流。当代大多数一流的数学家都工作在这一领域。因此如果你觉得自己天赋异禀,并在代数,几何与分析各方面都有着扎实的基础,我建议你绝不要浪费自己的天赋:应义无反顾的选择代数几何这一专业。当然把代数,几何与分析这三门基础功课同时学好的人很少。比如有些同学有着很好的分析功底,但代数中的抽象思维能力却相对显得薄弱。如果是这样的话,我建议你选择分析方面的专业,比如:复分析,分形,+调和分析或微分方程。
如果你代数和分析都不怎么样,可却在几何方面有着良好的感觉,要是这样的话,我建议你应和梅加强老师好好探讨一下。让他帮你判断一下看自己是不是可以学习几何。+除以上三部分同学之外,还有这样的一部分同学:他们对代数,分析与几何都不擅长,但却一直坚信自己在数学上仍能有所作为,并幻想有朝一日成为中国数学界的中流砥柱。如果你属于这部分同学中的一位的话,我建议你选择动力系统。动力系统这一学科其实就是专门为这部分同学开设的。
当然即使是动力系统也不是人人都能学的。因为动力系统需要大量的微积分。可总有那么一部分同学还没来得及把极限的概念搞清楚就大学毕业了。如果你不巧就是这样的一位同学,也就是说你大学四年压根儿就没学数学,但仍希望自己将来能在数学上一展宏图的话,我建议你选择组合数学这一专业。这一专业的特点就是它只用到中学的数学。+如果你在中学时参加过数学竞赛并获过奖项的话,这一学科正是你大展身手的地方。
我想大多数同学看到这儿之前已经找到了适合自己的专业了。可若仍有人羞怯的说他在中学时早恋,因此连中学的数学也没学好,我想告诉这部分同学不要怕。在我们系有专门为你们开设的一个专业:统计学。这一学科只要求懂得小学数学中的加减乘除四则运算就够了。+更重要的是,选择这一专业的大多都是女同学。在你准确无误的把成千上万个数据加起来并娴熟的计算出他们的均值时,你也赢得了众多师姐师妹的芳心:短短三年的研究生生活或许能让你再次体会一次那如花美眷,似水流年的往事。。。
最后这一条是专门针对那些悲情人物的。他们连小学的数学也没学好。不要说把上千个数加起来,就是把两个数加起来,对他们来说都是件很吃力的事。然而这一切丝毫没有削弱他们对数学的一片痴情。他们日日夜夜泡在图书馆里。他们翻阅了所有的数学文献,却从未找到一本能读懂的。+但他们仍坚持不懈,+为的就是找到一个适合自己的专业。他们的行为感动了上帝。上世纪的某一天,上帝为他们创造了一台机器帮他们计算。这就是计算机。借助计算机,他们可以很快的进行加减乘除的运算。这就是计算数学。
'''