Encryption

rsa 公鑰和私鑰

  • December 8, 2014

我有一個關於 RSA 密鑰生成的問題。

這是一個簡單的 RSA 算法:

選擇 p = 3 和 q = 11

計算 n = p * q = 3 * 11 = 33

計算 ?(n) = (p - 1) * (q - 1) = 2 * 10 = 20

選擇 e 使得 1 < e < ?(n) 並且 e 和 n 互質。讓 e = 7

計算 d 的值,使得 (d * e) % ?(n) = 1。d=3

公鑰是 (e, n) => (7, 33)

私鑰是 (d, n) => (3, 33)

所以公鑰和私鑰是數字。但在許多線上加密網站中,密鑰是這樣的:

d94d889e88853dd89769a18015a0a2e6bf82bf356fe14f251fb4f5e2df0d9f9a94a68a30c428b 39e3362fb3779a497eceaea37100f264d7fb9fb1a97fbf621133de55fdcb9b1ad0d7a31b379216 d79252f5c527b9bc63d83d4ecf4d1d45cbf843e8474babc655e9bb6799cba77a47eafa83829647 4afc24beb9c825b73ebf549

這些密鑰實際上是如何生成的?

您寫下的密鑰包含混合的字母和數字元號,因為它是以十六進製表示形式編寫的:即使用從 0 到 9 以及從 A 到 F 的符號。有關此主題的更多資訊,請訪問Wikipedia 頁面。您可以使用 python、sage、Pari/GP 等軟體輕鬆地將十六進制轉換為十進制。可以在這裡找到線上轉換器:十六進製到十進制轉換器

關於密鑰生成,過程與您描述的相同,但數字更大:標準 RSA 密鑰使用大約 1024 位的素數。真正不同的部分是找到這樣大小的素數:有一些算法會輸出一些希望大小和(以高機率)素數。

引用自:https://crypto.stackexchange.com/questions/19857