[密码学] ElGamal加密算法与离散对数
生活随笔
收集整理的這篇文章主要介紹了
[密码学] ElGamal加密算法与离散对数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 前言
- 離散對數問題
- ElGamal加密算法
- 算法描述
- 密鑰生成
- 加密算法
- 解密算法
- 橢圓曲線群上的ElGamal加密
- 密鑰生成
- 加密算法
- 解密算法
- 優勢
- 點壓縮
- 離散對數問題的困難性
- 窮舉搜索法
- Shanks算法BSGS
- 原理
- 算法描述
- Pohlig-Hellman算法
- 原理
- 偽代碼
- Pollard ρ算法
- 原理
- 偽代碼
- 例子
- 指數計算算法
- 原理
- 例子
前言
ElGamal加密算法是由Taher ElGamal于198年提出的一種基于離散對數問題的公鑰加密算法。是一種非確定性的加密算法,即每次加密會使用一個隨機數,加密相同的明文時,不同的隨機數可能會產生不同的密文。好的加密算法應該具有非確定性,可引入工作模式將算法轉變成非確定性加密算法。
離散對數問題
給定乘法群(G,·),一個階為n的元素α∈G(即αn=e)以及元素β∈<α>。計算唯一的整數a,0≤a≤n-1,滿足**αa=β**,其中a稱為β的離散對數以a為底的logβ。
ElGamal加密算法
算法描述
密鑰生成
加密算法
解密算法
橢圓曲線群上的ElGamal加密
密鑰生成
加密算法
解密算法
優勢
①基于計算橢圓曲線上離散對數的困難性
②密鑰短(160-bit)
③同一基域上選取不同的橢圓曲線
點壓縮
表示明文或公鑰參數的時候,用點表示,且點有一定規律。
?橫坐標相同的點,縱坐標互為相反數。
離散對數問題的困難性
窮舉搜索法
在0≤a≤n-1之間去遍歷a,看哪個a滿足條件。
時間O(n),空間O(1)
Shanks算法BSGS
原理
算法描述
時間O(n0.5),空間O(n0.5)
所以群的階應該足夠大
Pohlig-Hellman算法
原理
偽代碼
時間復雜度O(cq)
因此群的階應該含有足夠大的素因子
Pollard ρ算法
原理
偽代碼
例子
所以群的階應該足夠大
指數計算算法
只適用于模p的群上
原理
例子
所以模p應該足夠大,群中元素難以用少量素數表示
總結
以上是生活随笔為你收集整理的[密码学] ElGamal加密算法与离散对数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [密码学] 因子分解
- 下一篇: [密码学] 离散对数比特安全性