📜  破解密码学

📅  最后修改于: 2022-05-13 01:57:01.849000             🧑  作者: Mango

破解密码学

在本文中,我们将讨论对称加密协议的概述以及对非对称加密的需求,这里我们将讨论概述、密码学示例和破解密码学的规则?让我们一一讨论。

概述 :
密钥对消息进行加扰,并且该密钥可以解密消息。然后,一旦 Alice 和 Bob 就密钥达成一致,他们就可以交换消息。但是,他们如何才能在窃听者监控的网络上就密钥达成一致呢?让我们假设窃听者是 Eaves!现在,为了解决这个问题,我们改用非对称密钥。

例子 -

  • Alice 用 Bob 的公钥加密她的消息,因为只有 Bob 可以用他自己的私钥解密消息。同样,Bob 加密
  • 他用 Alice 的公钥发送的消息只能用 Alice 的私钥解密。
  • 现在,Alice 也可以使用这种方法向 Bob 验证自己的身份。
  • 她可以用她的私钥加密她的消息,然后用 Bob 的公钥加密该结果。当 Bob 用他的
  • 自己的私钥,他看到已经存在内层加密。现在,如果这可以用 Alice 的公钥加密,那么他将
  • 当然是爱丽丝加密了它。

生成私钥:
现在让我们深入了解这些密钥是如何生成的,如下所示。

方法 -

  1. 生成私钥在计算上非常难以生成。它根本无法通过对称为 RSA 算法的算法产生的公钥进行逆向工程来产生。
  2. RSA算法的协议是什么?
  3. 我们产生一个数字(N),它是两个素数的乘积(比如说 p 和 q)
  4. 现在,产生的数字相当大(接近数百到一千位数)。
p ∗q = N

例子 -
让我们通过一个简单的例子来理解它,如下所示。

第1步 :
通过使用上述协议,让我们使用两个素数相乘来定义 n。 (直接取素数会使计算变得复杂。)

p=61, q =53.
compute N.  
N = p*q
N = 3233
Applying Euler's Totient function,  
∅(n) = ∅(p*q)
     = ∅(p) * ∅(q)
     = (p-1)*(q-1)
     = 60*52
     = 3120

第2步 :
我们没有直接取 N,因为计算许多与它互质的数对我们来说会变得很复杂。

Choose 'e' ; 1<=e<= ∅(n), co prime to  ∅(n)
Going by that, if we take e = 17
Then,  Gcd(17,3120) should be = 1 
(that means the numbers should be co-prime to each other.)

our public key is :(e,N)= (17,3233)

第 3 步:
现在让我们确定私钥:(d,N)

e d = 1 mod ∅(n)
here e and ∅(n) are co primes to each other
Now going by the concept of Multiplicative Inverse we have,
d =  e-1 mod ∅(n)
Finding d:
d is calculated using the formula:
= [(∅(n) * i)+1]/e

第4步 :
我们通过改变 i 的值来继续计算它。在这里,我们将 I 设为 1、2、3……等,直到我们得到一个非十进制数的答案。

at i = 15, we get d as 2753
hence our private key becomes:
(d,N)=(2753,3233)

第 5 步:
生成公钥和私钥后,我们执行加密和解密。

(m e)d ≡ m mod N, 
 where 
 m - It is the message. Such computation is a one way function.

RSA 算法的优势在于 N。N 越大,取出其质因子的速度就越慢。

破解密码学:
讨论完这个,让我们来看看我们如何破解密码学!

  1. 如果我们知道如何计算大量数字,破解开放的安全系统将很容易。
  2. RSA 使用这些主要因素作为解密这些消息的密钥。为此,我们需要找出一个非常大的数字的主要因素!
  3. 现在,这可能会变得非常无聊和耗时。
  4. 我们需要有一个战略计划来考虑它们。著名数学家欧拉出手相救。他考虑过质数和
  5. 它给出了各种假设,如模运算。基本上,他给出了 RSA 密码学下的所有数学知识。
  6. 模块化算术:
  7. 这里我们考虑两个数相除时的余数。
a ≡ x mod N
when we divide a/N, the remainder is --> x
2 × 3 = 6
6/5 = 1
so,  
2 × 3 mod 5 is 1
its written as:
2*3 ≡ 1 mod 5

取幂和模运算的关系:
让我们看一下幂运算和模运算之间的关系如下。

让我们借助示例来理解。

  1. 如果我们取 3 (3 k ) 的幂,我们将得到 3,9.27,81,243
  2. 现在,如果我们用 10 对数字取模,我们得到一个序列为 9,7,1,3,9,7,1,3……等等。
  3. 我们观察到功率序列增加,但模循环重复自身。
  4. 我们还观察到模式的最后一位数字始终为 1。
  5. 现在,只要 x 和 N 是互质数,x mod N、x 2 mod N、x 3 mod N ……所有这些都将保持这个性质。
  6. 我们称重复模式周期的长度。
  7. 在这里,3 mod 10 的周期是 4(因为在每第四个数字之后模式重复)
  8. 周期是最小的数字“r”,这样,
x r ≡ 1 mod N

一个数的计算因子:
现在让我们看看模算术、取幂和周期如何与数字的计算因子相关。

假设给您一个数字 N,并且还给您它的因子 p 和 q。对 p 和 q 一无所知。

N = p .q

第1步 :
选择任何小于 N 的数字。我们称它为“a”。检查a和N是否互质。我们通过两者的 GCD 来检查这一点。 GCD(a, N)=1,则它们互质。

第2步 :
第二步是计算一个模 N 的周期。在这个例子中,我们取 N = 32,我们假设 a = 8(因为它们都是互质的)让我们假设周期是 'r '。

powers of 8 = 8,64,512,4096.....
mod 35 = 8,29,22,..1
We compute r to be as 4.

为了进行算术练习,我们需要将 r 除以 2。所以,我们需要知道 r 是偶数。稍后,我们还需要知道 a r/2 + 1 ≇ 0 mod N。如果其中任何一个失败,我们需要在开始步骤中选择不同的“a”。

第 3 步:
对于第 3 步,我们必须做一些代数,如下所示。让我们从我们知道的事情开始。

ar ≡ 1 mod N
which on subtracting 1, gives  
ar  - 1 ≡ 0 mod N

上面说的内容相当于说它是 N 的倍数(因为这里得到的余数是 0。)所以,必须存在某个整数 'k' 使得:

ar - 1  = k .N
Since we assumed 'r' as an even number here, we can write it as : 
(a r/2 - 1 )(a r/2 +1 )= k. N

Since N=p .q, so we replace N with  p . q
(a r/2 - 1 ) (a r/2 +1 ) = k. p .q

Since, we have the period of 8 mod 35 as 4, we can write it as:
84 ≡ 1 mod 35

so, 84 - 1 ≡ 0 mod 35 (its equivalent to saying that its a multiple of N)
So we can re write it as: 84 - 1 = k . 35
rewriting this as (since r is even here):

(8r/2 - 1)(8r/2 + 1) = k. p .q (where p .q are the prime factors of N)

第4步 :
现在,第 4 步是计算 p & q。我们在这里假设 GCD((a r/2 – 1), N) 是主要因素之一。让我们称之为p。并且,GCD((a r/2 + 1), N) 是另一个主要因素。我们称它为 q。在等式 (a r/2 – 1)(a r/2 + 1) = kp q 中,我们假设 p 必须除以左侧的因子之一,并且 q 也必须除以左侧的因子之一.它们都不能在左侧除以相同的因子,因为该因子可以被 N 整除。

肖尔算法:
我们做出如下假设。

p divides (ar/2 - 1) and q divides (ar/2 + 1)
We get, p = Gcd(63,35) = 7
and q is the Gcd(65,35) = 5

让我们快速回顾一下我们所做的如下。

  1. 取 'a' 小于 N。
  2. 求模 N 的周期
  3. 用代数重新排列
  4. 令 p = Gcd ((a r/2 – 1), N) 和 q = Gcd ((a r/2 + 1), N)

你完成了!你破坏了安全系统。但是我们知道 RSA 仍然有效,并且取出该期限需要很长时间。但是,量子计算机的作用来了。他们擅长计算周期。以上是 Shor 算法的概要。