密碼學/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 個整數,因此我們最終得到密文的大小是它們加密的訊息的兩倍。