• rsa加密相关基础知识(1)


    RSA 基本原理:

    选取两个不同的大素数p、q,并计算N=p*q,选取小素数d,并计算e,使d*e % (p-1)(q-1)=1,
    对于任意A<N:
    若B=A**d % N
    则A=B**e % N

    可见d、e形成了非对称秘钥关系,加密者用公钥d加密,解密者可用私钥e解密,第三者即使拦截了密文B、公钥d和N,在不知道p、q的前提下,无法推算出e,从而无法获得明文A。当N取非常大的值时,将其因式分解成p、q是非常困难的,例如当N为1024 bit时,据分析,需动用价值数千万美金的大型计算机系统并耗费一年的时间。

    质数与互质关系:

    质数又称素数,指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。

    互质关系:两个正整数,除了1以外,没有其他公因子,我们就称这两个数是互质关系(coprime)

      1.任意两个质数构成互质关系,比如13和61。

      2. 一个数是质数,另一个数只要不是前者的倍数,两者就构成互质关系,比如3和10。

      3. 如果两个数之中,较大的那个数是质数,则两者构成互质关系,比如97和57。

      4. 1和任意一个自然数是都是互质关系,比如1和99。

      5. p是大于1的整数,则p和p-1构成互质关系,比如57和56。

      6. p是大于1的奇数,则p和p-2构成互质关系,比如17和15。

    欧拉函数:任意给定正整数n,计算在小于等于n的正整数之中,有多少个与n构成互质关系。计算这个值的方法叫做欧拉函数。以φ(n)表示。如φ(6)=2,因为在1到6之中,与6形成互质关系的有1,5。

    欧拉函数的计算分为5种情况:

      1. n=1,φ(1)=1

      2.n是质数,φ(n)=n-1.质数与每个小于它的数都构成互质关系

      3.n是质数的k次方,比如n=p^k, p是质数。φ(n)=p^k-p^(k-1)。在小于等于n的数字中,只有不包含因数p的数字才能与n互质。包含p的数字为 1*p,2*p,3*p。。。p^(k-1)*p 一共有p^(k-1)个。

      4. n是两个质数的乘积,n=a*b, φ(n)=φ(a)*φ(b)

      5.任意大于1的整数都可以拆成一系列质数的乘积。此时φ(n)=n*(1- p1^-1)(1-p2^-1)...(1-pn^-1). 可通过情况3与情况4推导出来。

    欧拉定理:

    两个正整数a和n互质,则n的欧拉函数φ(n)可以让下面的式子成立: aφ(n)≡1 (mod n)

    如果n为质数则 an-1≡1(modn). 此为费马小定理

    模反元素:

    如果两个正整数a和n互质,那么一定可以找到整数b,使得 ab-1 被n整除。即 ab≡1(modn) .可用欧拉定理证明b一定存在

  • 相关阅读:
    Mysql 优化 or
    为什么 Mysql 推荐使用整形自增的主键而不使用 UUID
    Mysql 索引上做计算为什么会导致索引失效
    SQL 提示
    索引语法
    Mysql 优化 limit 1
    Mysql 优化 like
    SpringCloud Feign 报错 Request method 'POST' not supported 的解决办法
    前缀索引
    Explain 关键字
  • 原文地址:https://www.cnblogs.com/linuxiaogang/p/16011942.html
Copyright © 2020-2023  润新知