(网络空间安全技术实践)7.4elgamal密码算法编程实验

上传人:繁星 文档编号:88156502 上传时间:2019-04-20 格式:PPTX 页数:10 大小:221.29KB
返回 下载 相关 举报
(网络空间安全技术实践)7.4elgamal密码算法编程实验_第1页
第1页 / 共10页
(网络空间安全技术实践)7.4elgamal密码算法编程实验_第2页
第2页 / 共10页
(网络空间安全技术实践)7.4elgamal密码算法编程实验_第3页
第3页 / 共10页
(网络空间安全技术实践)7.4elgamal密码算法编程实验_第4页
第4页 / 共10页
(网络空间安全技术实践)7.4elgamal密码算法编程实验_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《(网络空间安全技术实践)7.4elgamal密码算法编程实验》由会员分享,可在线阅读,更多相关《(网络空间安全技术实践)7.4elgamal密码算法编程实验(10页珍藏版)》请在金锄头文库上搜索。

1、7.4 Elgamal密码算法编程实验,实验目的: 掌握Elgamal密码加解密原理,并利用Visual C+编程实现。 实验内容: 编程实现字符串”Hi, this is Elgamal!”的加密,并解密验证之。,网络空间安全实践教程,1,7.4 Elgamal密码算法编程实验,实验原理: 系统参数: 选取指定bit数的大素数p 取g是乘法群 的一个生成元 密钥生成: 随机选取整数 ,并计算 , 则y是公钥,x是私钥,网络空间安全实践教程,2,7.4 Elgamal密码算法编程实验,实验原理: 加密: 对于明文 ,随机选取整数 ,计算 ,得到密文 解密: 对于密文 ,计算 ,得到解密后的 明

2、文,网络空间安全实践教程,3,7.4 Elgamal密码算法编程实验,实验要点说明: 素数与生成元选取: 对于一般的素数p,我们有以下生成元判定算法: 令p - 1的所有素因子是 ,若 ,则g是乘法群 的生成元。 这个判定算法需要对p - 1做因数分解,当p是一个普通的大素数时,因数分解本身就是困难的问题,所以在实现ElGamal密码时一般将p取成2 * q + 1(q也是素数)的形式,这样形式的素数也被称为安全素数。,网络空间安全实践教程,4,7.4 Elgamal密码算法编程实验,实验要点说明: 素数与生成元选取: 取p是一个安全素数,即p = 2* q + 1,q也是素数,因为p - 1

3、的素因子是2和q。则根据以上判定算法,只要中的元素g满足 则g就是乘法群 的生成元。 所以在生成Elgamal密码中的大素数p时,就限制其是安全素数(2 * q + 1)的形式,可参考如下代码:,网络空间安全实践教程,5,7.4 Elgamal密码算法编程实验,Bigint GenSafePrime(int bytes) /生成安全素数 p = 2q + 1 Bigint one = 1; Bigint two = 2; Bigint q = BigRandOdd(bytes); Bigint p = Add(Narrow(Mul(two,q),one); / p = 2 * q + 1 in

4、t loop = 20; while(!MillerRabin(q, loop) ,网络空间安全实践教程,6,7.4 Elgamal密码算法编程实验,实验准备: Windows 操作系统 Visual Studio 2010以上开发环境,网络空间安全实践教程,7,7.4 Elgamal密码算法编程实验,实验步骤: 利用Visual C+开发环境,构建类似右图的 Elgamal密码加解密界面。 编写随机生成密钥按钮事件:随机生成大素数 p与生成元g,再随机生成私钥x与公钥y并显示。 编写加密按钮事件:从明文框中读入字符序列, 生成随机数k,利用公钥进行加密,在密文框中 输出。 编写解密按钮事件:从密文框中读入字符序列, 根据私钥对其解密,在解密的明文框中输出。,网络空间安全实践教程,8,7.4 Elgamal密码算法编程实验,实验结果要求: 给出关键编程思路。 总结实验过程中遇到的问题和经验。,网络空间安全实践教程,9,7.4 Elgamal密码算法编程实验,实验视频:,网络空间安全实践教程,10,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号