首页
/
每日頭條
/
生活
/
簡述rsa算法基本思想
簡述rsa算法基本思想
更新时间:2024-11-18 11:07:32

簡述rsa算法基本思想?1.公鑰與私鑰的生成:,我來為大家科普一下關于簡述rsa算法基本思想?以下内容希望對你有幫助!

簡述rsa算法基本思想(RSA基本思路如下)1

簡述rsa算法基本思想

1.公鑰與私鑰的生成:

  • (1) 随機挑選兩個大質數 p 和 q,構造n = p*q;
  • (2)計算歐拉函數φ(n) = (p-1) * (q-1);
  • (3)随機挑選e,使得gcd(e, φ(n)) = 1,即 e 與 φ(n) 互素,gcd指的是求最大公約數;
  • (4)計算d,使得 e*d ≡ 1 (mod φ(n)),即d 是e 的乘法逆元。

2.加密過程:

  • (1)待加密信息(明文)為 m,m < n;(因為要做模運算,若m大于n,則後面的運算不會成立,因此當信息比n要大時,應該分塊加密);
  • (2))密文 c 的生成是 $$ c = m^e mod (n) $$

3.解密

$$ c^d mod (n) = (m^e)^d mod (n) = m^(d*e) mod (n) ; $$

3.解密

$$ c^d mod (n) = (m^e)^d mod (n) = m^(d*e) mod (n) ; $$

為什麼能解密?

要用到歐拉定理(其實是費馬小定理的推廣)

a^φ(n) ≡ 1 (mod n),

再推廣:a^(φ(n)k) ≡ 1 (mod n),

得到 a^(φ(n)k 1) ≡ a (mod n)

注意到 ed ≡ 1 mod φ(N),即:ed = 1 k*φ(N)。

因此,$$ M^(de) mod N = M^1 kφ(N) mod N = M $$

4.代碼如下

實例

#coding=utf-8

#__author__ = 'ralph'

import random

def extendedGCD(a, b):

#a*xi b*yi = ri

if b == 0:

return (1, 0, a)

#a*x1 b*y1 = a

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
Copyright 2023-2024 - www.tftnews.com All Rights Reserved