浅谈密码学中数论基础

Posted sylover

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈密码学中数论基础相关的知识,希望对你有一定的参考价值。

1.模运算(mod)

模运算也可以称为取余运算,例如 23≡11(mod12),因此如果a=kn+b,也可以表示为a ≡ b(mod n),运算规则:

(a+b) mod n = ((a mod n) + (b mod n))mod n

  (a*b) mod n = ((a mod n) * (b mod n)) mod n

  • 完全剩余集合

1~n-1构成了自然数n的完全剩余集合,对于任意一个整数m%n都存在于1~n的集合中

  • 构造加法链

   在加密算法中,运用到了大量的取模运算,对于一个k位数模n,所有的运算例如加减乘除中间结构将不会超过2k位,因此例如ax mod n将会大大简化计算时的复杂度。

例如a8 mod n 在计算时可以这样计算 ((a2 mod n)2 mod n)2 mod n

当指数x不是2的倍数时则需要构造加法链,例如25,25 = 16 + 8 +1 = 24 + 23 + 20

因此a25 mod n = (a * a8 * a16 ) mod n = ((((a* a)2)2)2*a)mod n

C语言表示

unsigned long ss(unsigned long x , unsigned long y , unsigned long n) 
unsigned long s,t,u;
int i ;
s = 1; t =x ; u=y;
while(u)
if(u&1) s = (s*t)&n;
u>>=1;
t = (t*t) % n ;

return (s);
  • 素数

最大公因数(gcd)

gcd(4,2)=2 gcd(4,3)=1 gcd(6,4)=2

c语言:

int gcd(int x,int y)
int m;
while(x>0)
m = x;
x = x%y;
y = m;
 
return m
  • 模逆元

逆元:

方程 技术图片 的解称为 技术图片 关于模 技术图片 的逆,当 技术图片(即 技术图片技术图片 互质)时,方程有唯一解,否则无解。

那么逆元可以用来干什么呢,比如说对于 技术图片,并没有 技术图片,但是直接除又会爆精度,这时我们就可以用到逆元,假设用 技术图片 代表 技术图片技术图片 的逆元,那么 技术图片

模逆元:

4 * x ≡ 1(mod 7),即 4x = 7k + 1

更常见的问题是:1 = (a * x) mod n 也可以写作 a-1≡ x (mod n)

因此这里存在一个解集的问题:

当gcd(a,n) = 1 , a-1 ≡ x (mod n) 存在唯一解

当gcd(a,n) ≠ 1 a-1 ≡ x (mod n) 无解

如何找出a%n  的逆元,利用拓展欧几里得算法

 

void e_gcd(int a, int b, int &gcd, int &x, int &y)

    if (b == 0)
    
        x = 1;
        y = 0;
        gcd = a;
    
    else
    
        e_gcd(b, a % b, gcd, y, x);
        y -= x * (a / b)
    

 

  • 费马小定理

       这个定理在初中数学联赛中经常会遇到,貌似之前看过高中联赛也有过,只不过CMO作为了基础写了一下。

内容:如果m是一个素数,且a不是m的倍数,那么根据定理存在 a m-11(mod m)

  • 欧拉函数

      欧拉函数:φ(n)表示从1~n-1中有多少个数与n互为质数。 φ(1) = 1,通项公式:φ(n)=n*(1-1/p1)*(1-1/p2)*(1-1/p3)*(1-1/p4)…..(1-1/pn)

其中 p1~pn为n的质因数。

在一些加密算法中,产生秘钥的过程即计算欧拉函数的过程。

  • 有限域上的离散对数

模指数是频繁运用于密码学中的另一种单向函数

例如:3x15 mod 17  , x = 6

不是所有的离散对数都有相应解 例如  3 x 7 mod 13 没有整数x可以符合这个公式,因此这个离散对数无解。有限域上的离散对数存在于两种情况中:

1.质数域中的乘法群

2.有限域中的椭圆曲线群

以上是关于浅谈密码学中数论基础的主要内容,如果未能解决你的问题,请参考以下文章

学习笔记网络安全基础知识总结

基础数论20170529_3 数论_gcd

数论基础

从基础数论函数说起3:莫比乌斯反演

数论总结1(基础数论)

浅谈数论