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

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

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

1、7.5 ECC密码算法编程实验,实验目的: 掌握ECC密码加解密原理,并利用Visual C+编程实现。 实验内容: 编程实现字符串”Hi, this is ECC!”的加密,并解密验证之。,网络空间安全实践教程,1,7.5 ECC密码算法编程实验,实验原理: 系统参数: 设p3是一个素数,E是有限域Fp上的椭圆曲线 E(Fp)是相应的点群, 是E(Fp)中有较大素数阶q的一个点。 密钥生成: 随机选取整数 ,并计算P = dG。d是私钥,P是公钥。,网络空间安全实践教程,2,7.5 ECC密码算法编程实验,实验原理: 加密: 对明文 ,随机选取整数 ,计算数乘 (x,y) = kP,再计算

2、, 明文 经加密后的密文即为 。 解密: 对任意密文 ,计算数乘 ,再计 算 ,得到解密后的明文 。,网络空间安全实践教程,3,7.5 ECC密码算法编程实验,实验要点说明: 公开参数选择: ECC的参数选取不同于其他的加密算法,对于素数p,参数a,b以及基点G的选择有很多要求,产生合适的参数需要耗费很多时间。所以许多标准化文档中直接给出了一些公开参数的取值,我们在此实验中采用RFC5639中的一条椭圆曲线,ID为brainpoolP192r1,其公开参数取值如下(以16进制表示): p = 0xC302F41D932A36CDA7A3463093D18DB78FCE476DE1A86297

3、a = 0x6A91174076B1E0E19C39C031FE8685C1CAE040E5C69A28EF b = 0x469A28EF7C28CCA3DC721D044F4496BCCA7EF4146FBF25C9 G.x = 0xC0A0647EAAB6A48753B033C56CB0F0900A2F5C4853375FD6 G.y = 0x14B690866ABD5BB88B5F4828C1490002E6773FA2FA299B8F q = 0xC302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1,网络空间安全实践教程,4,7.5 ECC密

4、码算法编程实验,实验要点说明: 公开参数选择: ECC的参数选取不同于其他的加密算法,对于素数p,参数a,b以及基点G的选择有很多要求,产生合适的参数需要耗费很多时间。所以许多标准化文档中直接给出了一些公开参数的取值,我们在此实验中采用RFC5639中的一条椭圆曲线,ID为brainpoolP192r1,其公开参数取值如下(以16进制表示): p = 0xC302F41D932A36CDA7A3463093D18DB78FCE476DE1A86297 a = 0x6A91174076B1E0E19C39C031FE8685C1CAE040E5C69A28EF b = 0x469A28EF7C2

5、8CCA3DC721D044F4496BCCA7EF4146FBF25C9 G.x = 0xC0A0647EAAB6A48753B033C56CB0F0900A2F5C4853375FD6 G.y = 0x14B690866ABD5BB88B5F4828C1490002E6773FA2FA299B8F q = 0xC302F41D932A36CDA7A3462F9E9E916B5BE8F1029AC4ACC1,网络空间安全实践教程,5,7.5 ECC密码算法编程实验,实验要点说明: 椭圆曲线点的表示: 用包含两个大整数的新结构体表示椭圆曲线上的点,例如: typedef struct ECCP

6、oint Bigint x; Bigint y; ECCPoint; 而无穷远点O我们就用坐标(0, 0)表示。,网络空间安全实践教程,6,7.5 ECC密码算法编程实验,实验要点说明: 椭圆曲线数乘运算: 在椭圆曲线密码中,最重要的就是数乘运算,即给定数k与点P,计算点k * P的过程。为了计算快速,可以将数乘运算可以化为点加运算(计算P + Q)与倍点运算(计算2 * P)的结合,可参考7.1中求大数模幂时用到的模幂算法,可参考如下代码:,网络空间安全实践教程,7,7.5 ECC密码算法编程实验,ECCPoint ECCTimes(Bigint k, ECCPoint P, Bigint

7、n) /椭圆曲线数乘算法,计算k * P ECCPoint Q = 0,0; Bigint one = 1; while(Length(k) 0) while(!(k.num0 ,网络空间安全实践教程,8,7.5 ECC密码算法编程实验,实验准备: Windows 操作系统 Visual Studio 2010以上开发环境,网络空间安全实践教程,9,7.5 ECC密码算法编程实验,实验步骤: 利用Visual C+开发环境,构建类似右图的 ECC密码加解密界面。 编写密钥生成按钮事件:随机生成私钥d,利用 基点G计算公钥P = dG并输出。 编写加密按钮事件:从明文框中读入字符序列, 利用公钥进行加密,在密文框中输出。 编写解密按钮事件:从密文框中读入字符序列, 根据私钥对其解密,在解密的明文框中输出。,网络空间安全实践教程,10,7.5 ECC密码算法编程实验,实验结果要求: 给出关键编程思路。 总结实验过程中遇到的问题和经验。,网络空间安全实践教程,11,7.5 ECC密码算法编程实验,实验视频:,网络空间安全实践教程,12,

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

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

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