ElGamal数字签名方法
基于环Zn上圆锥曲线的ElGamal数字签名方案

自从 D fe He ma _提 出公钥 密码体制 以来 , i i与 f l n1 l ] 至今 已 经形成较 为系统的公钥密码 学 , A 与 EG ma 是两个 比较 RS Ia l 完善 的公钥 密码算 法_ ] 2 。其 中 EGa l I ma 公钥 体 制是 E G — I a
( ,) 即同余方程 ( ) n6( 1的解集 ) : 为
G ( ,) {z, E × I 三n b ( d } n 6 一 ( ) 三 z - x mo ) 三
首先以坐标方式给 出 C ( ,) n 6 中全部有理点 的表示 : 。 ]
C ( ,) t 2 n 6 一C c U UG UO,
维普资讯
计算机科学 2 0 Vo. 4 Q 6 0 7 13 N.
基 于环 上 圆锥 曲线 的 E Ga l 字 签 名 方 案 ) I ma 数
杨 慧 肖国镇
( 西安 电子科 技 大学 IN 国家 重点 实验 室 信息保 密研 究所 西安 70 7 ) S 10 1
Ab ta t S m eb scp o e t so o i sr c o a i rp ri fc nc ( 6 o e h e iu ls ig e n, ) v rt er sd eca srn a ep e e td Th Ga ldgt l i— r r sn e . eEI ma iia g s n t r c e n C ncC ( 6 v rt er sd eca sr g au es h meo O i n, )o e h e iu ls i i e in ea d i u rcs uaini o e n Sd sg el n t n me i i lt Sd n .Co pe s m o m r— h n iey u ig t edfiut si a trzn ag tg ra d c mp t gd srt o aih .t esc rt fti ii l e sv l sn h i c li n fco iig lr ei e e n o u i ic eelg rtm f e n n h e u i o hsdgt y a sg au esh mei n ra e F rt efcl y o litx mb d i n h o u i frn n on n c nc in t r c e ice sd o h a it fpane te e dn a d tec mp t o a ka d p it o i . i g g n o ( 6 ,hssh meh st ea v n a e fs e d p rto n a yr l a in,s eil yu i h n, ) t i c e a h d a tg so p e y o eain a de s e i t a z o e p cal b sn teNAF y g . Ke wo d C ni c r eo e ,EI ma i i lsg a u e s h m e y rs o c uv vr Ga l g t in t r c e ,Nu e i i l t n,NAF d a m rc smu a i o
基于椭圆曲线的ELGamal数字签名方案

1 引言
2 0世 纪 8 0年 代 中期 ,Mie 和 Kolz2将 椭 圆 曲线 引 进 了 密 码 学 中 ,人 们 对 其 做 了 lr l bi _ t
伍 红 梅 : 于 椭 圆 曲 线 的 ELGa 基 ma l数 字 签 名 方 案
f
, ≠Q P
其 A J2。 中 : 【 一
,
(2 2) .
P :Q
() F2 2 G ( )上 的 椭 圆 曲线 非 超 奇 异椭 圆 曲线 E( b ( F( ) n, ) G 2 )定 义 为满 足 方 程 Y +x : +0 +6的点 ( Y y , ) ∈ G P)XG P) 无 穷 远 点 0的 集 合 , , F( F( 和 口 b∈ G 2 )且 b≠ 0 这 些 点 在 如 下 定 义 的加 法 F( , 下 构 成 一 个 阿 贝尔 群 , 等元 为 0。 恒 P和 Q是 E( , ) C 2 ) 口 6 ( F( )上 的 两点 , 果 P = 0则 一尸 如
L = A( , , l— )一Y 3 1
f1 2) .
收 稿 日期 :2 1 — 0 — 0 00 1 5
作者 简 介 :伍 红 梅 ( 9 3 ) 1 8 一 ,女 ,籍贯 四川 ,研 究 方 向密 码 学 。
・
4 ・ 4
楚 雄 师 范 学 院 学 报 2 0年 第 3期 01
大量 的研 究工 作 后 ,建立 了椭 圆 曲线 公 钥 密 码 体 制 。它 是 一 种基 于 椭 圆 曲线 离 散 对 数 问题
eclipse实现ElGamal数字签名

eclipse实现ElGamal数字签名ElGamal数字签名,供⼤家参考,具体内容如下⼀、实验⽬的学习ElGamal算法在数字签名⽅⾯的使⽤,掌握教科书版本的ElGamal数字签名算法的编写,掌握ElGamal加密算法和ElGamal数字签名算法的异同。
⼆、实验要求1.熟悉ElGamal数字签名算法。
2.掌握如何使⽤Java BigInteger类,简单实现教科书式的ElGamal公私钥签名算法。
3.了解ElGamal加密算法和ElGamal数字签名算法的异同。
三、开发环境JDK 1.7,Java开发环境(本实验采⽤Windows+eclipse作为实验环境),要求参与实验的同学按照对称加密提供的⽅法,提前安装好JDK。
四、实验内容【1-1】ElGamal签名算法的实现1.实现公私钥⽣成算法:根据教材,ElGamal公私钥⽣成算法⾸选需要选取⼀个⼤素数,然后选取作为其⽣成元。
接着随机选取私钥,计算作为其公钥。
因此,可写代码如下:public void initKeys() {System.out.println("choose a prime p with securitylevel "+ securitylevel + " , please wait ...");p = new BigInteger(securitylevel, 100, new Random());System.out.println("p : " + p);g = __randomInZp();System.out.println("g : " + g);x = __randomInZp();System.out.println("x : " + x);y = g.modPow(x, p);System.out.println("y : " + y);}其中,__randomInZp定义如下函数,实现从中随机选取⼀个⼤整数:public BigInteger __randomInZp() {BigInteger r = null;do {System.out.print(".");r = new BigInteger(securitylevel, new SecureRandom());}while(pareTo(p) >= 0);System.out.println(".");return r;}2.实现签名算法:ElGamal签名算法需要随机选取,同时计算此时,即为签名。
数字签名概述

数字签名概述091120112 扈钰一、引言政治、军事、外交等活动中签署文件, 商业上签定契约和合同以及日常生活中在书信、从银行取款等事务中的签字, 传统上都采用手写签名或印鉴。
签名起到认证、核准和生效作用。
随着信息时代的来临, 人们希望通过数字通信网络进行迅速的、远距离的贸易合同的签名,数字或电子签名法应运而生,并开始用于商业通信系统, 诸如电子邮递、电子转帐、办公室自动化等系统中。
由此,能够在电子文件中识别双方交易人的真实身份,保证交易的安全性和真实性以及不可抵懒性,起到与手写签名或者盖章同等作用的签名的电子技术手段,称之为电子签名。
数字签名是电子签名技术中的一种,两者的关系密切。
目前电子签名法中提到的签名,一般指的就是"数字签名"。
数字签名与传统的手写签名的主要差别在于:(1)签名:手写签名是被签文件的物理组成部分,而数字签名不是被签消息的物理部分,因而需要将签名连接到被签消息上。
(2)验证:手写签名是通过将它与其它真实的签名进行比较来验证,而数字签名是利用已经公开的验证算法来验证。
(3)签名数字消息的复制品与其本身是一样的,而手写签名纸质文件的复制品与原品是不同的。
二、数字签名的含义及作用数字签名(又称公钥数字签名、电子签章)是一种类似写在纸上的普通的物理签名,但是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法。
数字签名主要有以下几个作用:1、收方能确认或证实发方的签字,但不能伪造;2、发方发出签名后的消息,就不能否认所签消息;3、收方对已收到的消息不能否认;4、如果引入第三者,则第三者可以确认收发双方之间的消息传送,但不能伪造这一过程。
三、数字签名原理数字签名采用了双重加密的方法来实现防伪、防赖。
通过一个单向函数对要传送的报文进行处理,得到的用以认证报文来源并核实报文是否发生变化的一个字母数字串。
一套数字签名通常定义两种互补的运算,一个用于签名,另一个用于验证。
ELGamal算法

实例解析: p=19; a=13,d=10,a与d均小于 p,符合条件; y = 13^10(mod19)=6; 公钥:y=6 a=13 p=19 私钥:d=10
签名过程: 1.随机选取一个数k,1< k<p-1,且k和p-1互质 2、计算r,r满足:r≡a^k (mod p) 3、待签名信息为m, 计算s≡(m-dr)*(k^(1)) (mod p-1) (r,s)构成对m的签名
一个群被称为有限群,如果它有有限个元素。元素 的数阶叫做群 G 的阶 例如,模19下7的阶为3,[1, 7, 49, 343, 2401, 16807, 117649, 823543, 5764801...]={1,7,11,1,7,11,1,7,11...}这里的 1,7,11循环,实际只有3个元素
群是一个集合G,连同一个运算 "· ",它结合任何两个元素 a 和 b 而形成另一个元素,记为 a · b。符号 "· " 是对具体给出的运算,比如加 法的一般的占位符。要具备成为群的资格,这个集合和运算 (G, · ) 必须 满足叫做群公理的四个要求: 1.封闭性。 对于所有 G 中 a, b,运算 a · b 的结果也在G 中。 2.结合性。 对于所有 G 中的 a, b 和 c,等式 (a · b) · c = a · (b · c) 成立。 3.单位元。 存在 G 中的一个元素 e,使得对于所有 G 中的元素 a,等式 e · a = a · e = a 成立。 4.反元素。 对于每个 G 中的 a,存在 G 中的一个元素 b 使得 a · b = b · a = e, 这里的 e 是单位元。
数字签名97194

三、利用ELGamal密码实现数字签名
⑶ 验证签名
• 安全性
• 如果k重复使用,如用k签名m1和m2。于是, m1=xr+ks1 mod p-1, m2=xr+ks2 mod p-1,
于是,(s1-s2)k=(m1- m2) mod p-1 如果知道了m1和m2,便可求出k,进而求出保密的解密钥。 • 由此可知,不要随便给别人签名。 • 不要直接对m签名,而是对HASH(m)签名。
五、盲签名
• 接收者首先将待签数据进行盲变换,把变 换后的盲数据发给签名者。
• 经签名者签名后再发给接收者。 • 接收者对签名再作去盲变换,得出的便是
签名者对原数据的盲签名。 • 这样便满足了条件①。要满足条件②,必
须使签名者事后看到盲签名时不能与盲数 据联系起来,这通常是依靠某种协议来实 现的。
其中,p为大于3素数,p确定了有限域GF ( p ) ; 元 素 a,b∈GF(p),a 和 b 确 定 了 椭 圆曲线;G为循环子群E1的生成元,n为素 数且为生成元G的阶,G和n确定了循环子 群E1。
y2=x3+ax+b mod p
四、利用椭圆曲线密码实现数字签名
d为用户的私钥,公开钥为Q点,Q=dG 。
数字签名97194
三、利用ELGamal密码实现数字签名
⑵ 产生签名
设明文消息m加签名,0≤m≤p-1,其签名过程如 下:
• 用户A随机地选择一个整数 k,1<k<p-1,且 (k,p-1)=1;
• 计 mod p-1
• 取(r,s)作为m的签名,并以<m,r,s>的形式
故签名可验证。
三、利用ELGamal密码实现数字签名
⑶ 验证签名
L001001023-ELGamal签名实验

课程编写类别内容实验课题名称ELGamal签名实验实验目的与要求了解并熟练掌握ELGamal签名实验环境VPC1(虚拟PC)操作系统类型:windows xp,网络接口:本地连接VPC1连接要求PC 网络接口,本地连接与实验网络直连软件描述1、学生机要求安装java环境2、vpc安装windows xp实验环境描述1、学生机与实验室网络直连;2、VPC1与实验室网络直连;3、学生机与VPC1物理链路连通;预备知识Elgamal算法:(1)密钥的选择:选P是一个大素数,P-1有大素数因子,a是一个模P的本原元,将P与a公开。
用户随即地选择一个整数X作为自己的秘密的解密钥,1<x<=p-2.计算 y = a^x ( mod p ),取y为自己的公开加密钥。
(2)产生签名设明文消息m加签名,0<=m<=p-1,其签名过程如下:用户a随即选择一个整数k,1<K<P-1,且(k,p-1)=1;计算r= a^k( mod p )计算s= (m-xr) /k mod p -1取(r,s)作为m的签名,并以<m,r,s>的形式发给用户B。
(3)签名验证用户B接收:< m,r,s>用户B用A的公钥验证:a^m =y^r *r^s ( mod p )是否成立,若成立则签名为真,否则签名为假。
签名的可验性可证明如下:因为s= (m-xr)k^-1 mod p-1所以m = xr+ks mod p-1故a^m=a^(xr+ks) = (a^x) r*( a^k ) ^s =y^r *r^s mod p故签名可验证。
(4)安全性ElGamal签名的安全性依赖于乘法群(IFp)* 上的离散对数计算。
素数p必须足够大,且p-1至少包含一个大素数因子以抵抗Pohlig & Hellman算法的攻击。
M一般都应采用信息的HASH值(如SHA算法)。
ElGamal的安全性主要依赖于p和g,若选取不当则签名容易伪造,应保证g对于p-1的大素数因子不可约。
基于ElGamal型改进的数字签名方案

的 伪 造 或 抵 赖 , 够 增 强 系 统 的有 效 性 和 安 全 性 , 而 在 上 述 算 法 中 能 然 5散 列 函 数 算 法 和 S 一 HA 1散列 函数 算 法 , 已被 来 自 中 国 11 初 始 化 过 程 :设 P是 一个 大 素 数 , . q是 P的 一 个 大 素 因子 ,整 数 所 用 到 的 MD 这 g∈Z 且阶为 q 即 ;l 4 。 p, , mo 系统用户中用户 A的私钥为 x1x p 山东 大 学 的 王小 云教 授 理 论破 解 , 样 就 会 对 数 字 签名 系统 的安 全性 o (<< 一
21 00年
第2 5期
S I N E&T H L YIF MA I N CE C EC NO OG OR TO N
O高校讲坛 。
科技信息
基于 E Ga l I ma 型改进的数字签名方案
齐桂 霞 ( 阳师 范
【 摘 要 】 着 计 算机 网络 技 术 的快 速 发 展 , 息安 全 问题 日益 突 出 , 核 心技 术基 础 之 一 的 数 字签 名 技 术 , 广 泛地 应 用于 军 事 、 随 信 其 被 通信 、 电
【 关键词】 数字签名; 离散对数; 散列 函数
EG m l 法 既 可 用 于 数 字 签 名 , 可 用 于加 解 密 , 安 全 性 依 Ia a 算 也 其
又 因 为 F , 以解 这 四个 方 程 可 以得 到 : 所
赖 于计 算 有 限 域 上 离 散 对 数 的 困 难性 上 。 18 9 5年 ,l a l 于离 散 EG ma 基 :mtS r s- ( S 3 n m ̄S(ls , 3r:s)n d, 1。 2+  ̄i 3 ar2+ 一】s 2 o (一 ) ) s 3 r ̄ 一 / 对数 难 题 提 出 一种 数 字 签 名 方 案 , 为 EG m l 字 签 名 方 案 【】 称 Ia a 数 l。从 3 EGa l 字 签 名 方 案 的缺 陷 I ma 数 此 . 种 基 于 离 散 对 数 问题 的 数 字 签 名 方 案 不 断 涌 现 , 括 许 多 关 于 各 包