重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
创新互联www.cdcxhl.cn八线动态BGP香港云服务器提供商,新人活动买多久送多久,划算不套路!
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟空间、营销软件、网站建设、湖滨网站维护、网站推广。这篇文章将为大家详细讲解有关eclipse如何实现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); }