RSA加密算法

0x00.所需概念&公式

  • Phi函数(欧拉函数):欧拉函数是小于或等于n的正整数中与n互质的数的数目(φ(1)=1)。此函数以其首名研究者欧拉命名(Euler’s totient function),它又称为Euler’s totient function、φ函数、欧拉商数等。e.g:φ(8)=4,因为1,3,5,7均和8互质,φ(7)=6,因为1,2,3,4,5,6,均和7互质。
  • 素数(质数):素数是这样的整数,它除了能表示为它自己和1的乘积以外,不能表示为任何其它两个整数的乘积。例如,15=3*5,所以15不是素数;又如,12=6*2=4*3,所以12也不是素数。另一方面,13除了等于13*1以外,不能表示为其它任何两个整数的乘积,所以13是一个素数。素数也称为“质数”。
  • 模指数运算有一个整数m,以n为模做模运算,即m mod n。怎样做呢?让m去被n整除,只取所得的余数作为结果,就叫做模运算。e.g:10 mod 3=1;26 mod 6=2;28 mod 2 =0。
  • 素数的Phi函数:所有素数的Phi函数均可用:φ(n)=n-1 计算。e.g:φ(7)=7-1=6,φ(11)=11-1=10,当一个数可以用两个互质的数表示时,其Phi值可用:φ(A*B)=φ(A)*φ(B)计算。e.g:φ(21)=φ(3)*φ(7)=2*6=12,21的质数有1,2,4,5,8,10,11,13,16,17,19,20共12个。
  • ≡:是数论中表示同余的符号。公式中,≡符号的左边必须和符号右边同余,也就是两边模运算结果相同。

0x01.演示

步骤 示例
step 1  选择一对素数p,q p=3,q=11
step 2 计算n=p*q n=3*11=33
step 3 计算φ(n) φ(n)=φ(p)*φ(q)
∴(3-1)*(11-1)=20
step 4 找一个与φ(n)互质的正整数e,且1<e<φ(n) 令e=3
step 5 计算d,使d*e≡1 mod φ(n)⇒d*e mod φ(n)=1 mod φ(n)=1 d*3 mod 20=1 mod 20=1
∴d=7
step 6 公钥(e,n),私钥(d,n) 带入可得:公钥(3,33),私钥(7,33)
step 7 明文为M,密文为C
加密公式:C≡M^e mod n
e.g:明文M=25,加密后密文C(即对明文数字25进行加密)
C≡M^e mod n
⇒C mod n=M^e mod n
⇒C mod 33=25^3 mod 33=16
⇒C=16
step 8 解密公式:M≡C^d mod n e.g:密文C=16,解密后明文M(即对密文数字16进行解密)
M≡C^d mod n
⇒M mod n=C^d mod n
⇒M mod 33=16^7 mod 33=25
⇒M=25

静态路由算法

0x00.固定路由

特性:

  1. 用一个中心路由目录维护路由。
  2. 节点只需相邻节点的信息。
  3. 对于数据包或虚电路作同样路由。

优点:

  1. 简单。
  2. 对具有稳定负载的可靠网络效率很高。

用矩阵表现固定路由

每列来看,1→2 经过2,可得节点1与节点2相邻,用1-2表示;1→3经过4,可得节点1和节点3不相邻,需要经过节点4…..依此类推可得每两两相邻的节点。


0x01.最短路径算法

测量路径长度的方法:

  1. 最小跳计数
  2. 最短距离
  3. 信道带宽
  4. 传输延迟
  5. 平均通讯量

最短路径选择方法

1.子网图

  1. 节点代表路由器。
  2. 弧线代表两个路由器之间的一条链路。

2.Dijkstra算法

找出一个节点到所有其他节点的最短路径。

e.g:使用Dijkstra算法计算A→D的最短路径

初始化:已知相邻节点与相邻节点间的长度。

step1.选择当前工作节点A

step2.标值其他节点到源的距离

此时B(2,A),2表示该点到源点A的距离,A表示与B相连的上一个节点。B(2,A),G(6,A),B点离圆点近,所以将B选择为工作节点。

step3.选择当前工作节点B

step4.标值其他节点到源的距离

此时,E(4,B),以此类推…….

3.扩散法(flooding)

将入境报文输出到所有输出线路(除去入境线路)。

e.g:使用扩散法将数据包从1传输到6

该模型初始化时没有任何路由信息,这是一种广播的方式。

数据包从1发出,2、4接收,2、4接收后进行拷贝,将数据包依次向下发送。

 

 

 

 

特性:

  1. 尝试所有可能的路由。
  2. 至少有一个包通过最小跳路到达目的端。
  3. 所有与源节点链接的节点都被访问。

优点:

  1. 具有一定健壮性。
  2. 简历虚电路。
  3. 将重要信息进行广播。

缺点:

包的拷贝数量呈指数增长。

解决方案:

  1. 在每个节点记下已发出包的表示。
  2. 在每个包中设置一跳计数。