算法定義
ElGamal算法,是一種較為常見的加密算法,它是基於1985年提出的公鑰密碼體制和橢圓曲線加密體系。既能用於數據加密也能用於數字簽名,其安全性依賴於計算有限域上離散對數這一難題。在加密過程中,生成的密文長度是明文的兩倍,且每次加密後都會在密文中生成一個隨機數K,在密碼中主要套用離散對數問題的幾個性質:求解離散對數(可能)是困難的,而其逆運算指數運算可以套用平方-乘的方法有效地計算。也就是說,在適當的群G中,指數函式是單向函式。
密鑰產生
密鑰對產生辦法。首先選擇一個素數p,獲取一個素數p的一個原根g(若g模p的階等於φ(p),則稱g為模p的一個原根。(其中φ(p)表示p的歐拉函式,即所有