密码学之欧几里得求逆元

什么是逆元

逆元:官方解释是:逆元素是指一个可以取消另一给定元素运算的元素,在数学里,逆元素广义化了加法中的加法逆元和乘法中的倒数;听起来有一丝不太容易懂;


那我们换成例子试一下:
(24 + 4) / mod 26 = 2
(24 - 22) / mod 26 = 2
此时,4和22就是mod26下的加法逆元;乘法逆元也是同理


原理步骤

求A关于模N的逆元B,即求整数B,使得A * B mod N = 1

  1. 对余数进行辗转相除(a是商,r是余数)
    密码学之欧几里得求逆元_第1张图片

  2. 对除了余数为0的商数进行逆向排列(即后求出的商值排在前面),并按照下面的方法生成bi
    密码学之欧几里得求逆元_第2张图片

对a逆向排列后如图所示:(图源网络)
密码学之欧几里得求逆元_第3张图片
3. 判断商的个数为奇数还是偶数

  • 若为偶数,则 bn 就是所求的逆元
  • 若为奇数,则 N-bn 就是所求的逆元

示例

**

题目:求7关于模26的的逆元

**
由题目可知,N = 26,A = 7;按照上面的步骤我们依次求解

(1)对余数进行辗转相除

26 = 7 * a0 + r0	   =>		 a0 = 3,r0 = 5
7 = 5 * a1 + r1	  	   =>		 a1 = 1,r1 = 2
5 = 2 * a2 + r2 	   =>		 a2 = 2,r2 = 1
2 = 1 * a3 + r3 	   =>		 a3 = 2,r3 = 0

(2)对除了余数为0的商逆向排列

			a2 = 2 						 a1 = 1 					 a0 = 3


b-1 = 1		b0=a2=2 				 b1=a1*b0+b-1=3				 b2=a0*b1+b0=11

(3)判断a的个数是奇数还是偶数
a0、a1、a2总共三个,为奇数;因此所求的逆元为 N - bn ,即 26 - 11 = 15

(4)得出结论:7关于模26的逆元为15

你可能感兴趣的:(网络安全【学习笔记】)