破解密码学
在本文中,我们将讨论对称加密协议的概述以及对非对称加密的需求,这里我们将讨论概述、密码学示例和破解密码学的规则?让我们一一讨论。
概述 :
密钥对消息进行加扰,并且该密钥可以解密消息。然后,一旦 Alice 和 Bob 就密钥达成一致,他们就可以交换消息。但是,他们如何才能在窃听者监控的网络上就密钥达成一致呢?让我们假设窃听者是 Eaves!现在,为了解决这个问题,我们改用非对称密钥。
例子 -
- Alice 用 Bob 的公钥加密她的消息,因为只有 Bob 可以用他自己的私钥解密消息。同样,Bob 加密
- 他用 Alice 的公钥发送的消息只能用 Alice 的私钥解密。
- 现在,Alice 也可以使用这种方法向 Bob 验证自己的身份。
- 她可以用她的私钥加密她的消息,然后用 Bob 的公钥加密该结果。当 Bob 用他的
- 自己的私钥,他看到已经存在内层加密。现在,如果这可以用 Alice 的公钥加密,那么他将
- 当然是爱丽丝加密了它。
生成私钥:
现在让我们深入了解这些密钥是如何生成的,如下所示。
方法 -
- 生成私钥在计算上非常难以生成。它根本无法通过对称为 RSA 算法的算法产生的公钥进行逆向工程来产生。
- RSA算法的协议是什么?
- 我们产生一个数字(N),它是两个素数的乘积(比如说 p 和 q)
- 现在,产生的数字相当大(接近数百到一千位数)。
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 越大,取出其质因子的速度就越慢。
破解密码学:
讨论完这个,让我们来看看我们如何破解密码学!
- 如果我们知道如何计算大量数字,破解开放的安全系统将很容易。
- RSA 使用这些主要因素作为解密这些消息的密钥。为此,我们需要找出一个非常大的数字的主要因素!
- 现在,这可能会变得非常无聊和耗时。
- 我们需要有一个战略计划来考虑它们。著名数学家欧拉出手相救。他考虑过质数和
- 它给出了各种假设,如模运算。基本上,他给出了 RSA 密码学下的所有数学知识。
- 模块化算术:
- 这里我们考虑两个数相除时的余数。
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
取幂和模运算的关系:
让我们看一下幂运算和模运算之间的关系如下。
让我们借助示例来理解。
- 如果我们取 3 (3 k ) 的幂,我们将得到 3,9.27,81,243
- 现在,如果我们用 10 对数字取模,我们得到一个序列为 9,7,1,3,9,7,1,3……等等。
- 我们观察到功率序列增加,但模循环重复自身。
- 我们还观察到模式的最后一位数字始终为 1。
- 现在,只要 x 和 N 是互质数,x mod N、x 2 mod N、x 3 mod N ……所有这些都将保持这个性质。
- 我们称重复模式周期的长度。
- 在这里,3 mod 10 的周期是 4(因为在每第四个数字之后模式重复)
- 周期是最小的数字“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
让我们快速回顾一下我们所做的如下。
- 取 'a' 小于 N。
- 求模 N 的周期
- 用代数重新排列
- 令 p = Gcd ((a r/2 – 1), N) 和 q = Gcd ((a r/2 + 1), N)
你完成了!你破坏了安全系统。但是我们知道 RSA 仍然有效,并且取出该期限需要很长时间。但是,量子计算机的作用来了。他们擅长计算周期。以上是 Shor 算法的概要。