跳轉到內容

密碼學/ElGamal

來自華夏公益教科書,開放的書籍,開放的世界

ElGamal 是基於離散對數問題的最簡單的密碼系統之一。離散對數問題的快速提醒 - 給定 ,使得 ,找到 。當處理有限集時,這是一個難題。ElGamal 有一組公共引數,可以被系統中的許多使用者共享。這些被稱為域引數。這些引數是

-  - a large prime of around 1024 bits (currently) such that  is divisible by another prime  of around 160 bits.
-  - an element of the finite field  with order divisible by , that is .

域引數建立一個公共組 ,具有素數階 和一個生成器 。換句話說,我們建立了一個龐大但有限的群,以及對該群進行排序的方法(生成器),我們知道它將包含素數個元素。這些是我們追求的屬性。這些引數是公開的,系統的安全性取決於公鑰和私鑰對,我們將在下一步生成它們。

私鑰 是一個隨機選擇的整數。公鑰是

為了加密訊息 ,我們生成一個隨機的短暫金鑰 ,並計算:

這給了我們密文

為了解密密文,我們計算:

正如您從解密方法中看到的,訊息 0 會加密成它本身,因此不是一個好的訊息選擇。除此之外,由於使用短暫金鑰 ,每次都會改變,您可以看到相同的訊息 會加密成許多不同的密文。

由於密文表示為與訊息長度相同的 2 個整數,因此我們最終得到密文的大小是它們加密的訊息的兩倍。

華夏公益教科書