Elgamal數字簽名原理
Elgamal數字簽名
Elgamal數字簽名主要也是利用離散對數的特性來實現簽名,具體方式如下:
1. 選擇一個大素數P、一個本原元G、一個隨機整數d,d屬於[2,p-2];
2. 生成β,β=G^d mod P;
3. 此時P、G、β就是公鑰,記作Kpub;
4. Elgamal數字簽名記作sig(x,k)=(r,s); x是明文的摘要,k是臨時私鑰的隨機值,記作Kpr,r,s是構成簽名的兩個整數;
5. 簽名生成: r=G^k mod P; s=(x-dr)k^-1 mod (p-1);
6. 生成簽名後,簽名隨明文一起傳送給接收方;
7. 接收者收到訊息後計算 t=β^r · r^s mod P
8. 驗證:當t≡G^x modP 則該簽名有效,資料未被篡改,反之則簽名無效;
舉例:B發訊息給A,對訊息使用Elgamal數字簽名
1. B選擇素數P=29、本原元G=2、隨機整數d=12,臨時私鑰k=5, 明文的摘要x=26;
2.公鑰β=G^d mod P → β=4096 mod 29 → β=7
3.B將公鑰(P=29,G=2,β=7)發給A
4.計算簽名,
r=G^k mod P → r=2^5 mod 29 → r=3
s=(x-dr)k^-1 mod (p-1) → s=(26-36)·17 mod 28 → s=26
5.計算簽名後將r=3、s=26、x=26傳送給A
6.A收到訊息後,驗證簽名:
t=β^r · r^smod P → t=343 X 2541865828329 mod 29 → t=22
t≡G^x mod P t mod P =22, G^x mod P =67108864mod 29 =22
7.驗證成功。
相關文章
- 數字簽名原理
- 數字簽名的原理和應用
- 數字簽名
- 大話數字簽名
- 加密與數字簽名加密
- 數字簽名(java) (轉)Java
- 數字簽名是什麼?
- applet數字簽名APP
- 給軟體數字簽名
- win10 如何禁用數字簽名 win10 關閉數字簽名方法Win10
- 文件數字簽名工作原理是什麼?文件簽名有什麼好處?哪些行業使用文件簽名證書?行業
- win10 禁止驗證數字簽名方法 win10 如何禁用數字簽名Win10
- 加減密和數字簽名
- 如何關閉win10的數字簽名_win10禁用數字簽名的方法Win10
- 從數字簽名的工作原理看電子商務安全(轉)
- ActiveX控制元件數字簽名實踐(免費簽名)控制元件
- Java 操作PPT數字簽名(一):新增、檢測、刪除簽名Java
- Java 新增數字簽名到Excel以及檢測、刪除簽名JavaExcel
- win10如何永久禁用數字簽名_win10怎麼關閉禁用數字簽名Win10
- Android 安全加密:數字簽名和數字證書Android加密
- Android安全加密:數字簽名和數字證書Android加密
- Java 新增、驗證PDF 數字簽名Java
- 支付寶介面的數字簽名
- windows10怎麼關閉數字簽名 win10永久關閉數字簽名的方法WindowsWin10
- 深入理解加密、解密、數字簽名和數字證書加密解密
- IOS App簽名原理iOSAPP
- exe軟體如何進行數字簽名
- 效能:驗證數字簽名導致卡死
- 用C++Builder建立數字簽名 (轉)C++UI
- iOS逆向——應用簽名及重簽名原理iOS
- Window 7 驅動數字簽名解決方案
- Java 獲取PDF數字簽名證照資訊Java
- 詳解數字簽名的含義及作用
- java使用RSA加密方式,實現數字簽名Java加密
- 公鑰加密、數字簽名、訊息認證加密
- 取消WindowsXP下驅動程式數字簽名(轉)Windows
- RSA加密解密及數字簽名Java實現加密解密Java
- 證書的數字簽名和認證 (轉)