信息与网络安全 Diffie-Hellman密匙交换算法 题目练习
1.考虑公共素数q = 11本原元a = 2的Diffie-Hellman方案
(1)如果用户A有公钥YA = 9,请问A的私钥XA是什么?
(2)如果用户B有公钥YB = 3,请问共享的密钥K是什么?
解:
(1)根据Diffie-Hellman密钥交换原理——设g是一个质数,n是g的本原元,要求n和g是公开的,则网络中的某一用户可以任意挑选一个小于g的整数i作为秘密密匙。
①满足a = n^i mod g (其中0 <= i <= (g-1))
②代入a = YA = 9 且 n = 2 且 g = 11 → 9 = 2^i mod 11
③求得离散对数i = XA = 6
(2)由(1)可知,代入求得XB = 8。
共享密匙K求解流程
①双方在基于本原元n和素数g,选择私有密匙XA和XB,得出各自的公开密匙YA,YB。
②(以A为例)使用自己的私有密匙XA和获取对方的公有密匙YB进行计算,得到共享密匙K。公式YB^YA mod g = K
③如图所示
④代入YA = 9 且 XB = 8 得 9^8 mod 11 = K = 3
2.假设某人建议用如下方法来确认你们两个人是否拥有同一密钥:
①你创建了一个与密钥长度相等的随机比特串,将它和密钥进行异或,并通过通道发送结果。
②你的伙伴将得到的分组与密钥(应该和你的密钥相同)进行异或并发回它。
③你进行核对并且如果你接收到的是你的原始随机串,你就证实了你的伙伴拥有同一密钥,而且你们两个人都还没有传递过密钥。
这个方案有缺陷吗?
解:有缺陷
- 不准确:双方密钥长度不确定相同,有可能对方的密钥的一部分和自己相同从而得到相同的异或结果。
- 不安全:通道传输是透明的,因为只有异或解码难题,容易收到攻击被破解。
- 易出错:因为为了确保解码足够安全,密钥长度往往很大,传递的比特串也同样很长,容易在传输过程中遗失或错误。
3. 假定网络中每一个节点N都被分派了一个独特的密钥Kn,这个密钥保证节点和服务器之间的安全通信。所有的密钥也被储存在服务器上。用户A希望发送秘密信息M给用户B,发起如下协议:
1.A生成一个随机数R并把自己的名字A,目标B和E(Ka, R)发送到服务器。
2.服务器把E(Kb,R)发送给A。
3.A把E(R,M)和E(Kb,R)发给B.
4.B知道Kb,所以解密E(Kb,R)获得R,随后使用R来解密M。
每个信息都被发送时都会生成一个随机数。当攻击者Z能截取保密节点之间的通信时,请分析攻击者Z如何利用该协议存在的安全问题而解密明文信息M?
(提示:攻击者Z会假装自己是A)
解:因为在协议运作过程中没有对于发送方的认证,因为KA默认只有用户A和服务器知道,但E(KA,R)在信道可能被攻击者Z截取,而伪装成A来获取明文M。流程如下
- A向服务器发送信息E(KA,R)被截取
- A(假)把自己的名字A,目标Z和E(KA,R)发送给服务器
- 服务器返回E(Kz,R)
- Z知道Kz,所以解密E(Kz,R)得到R,然后利用R来解密明文M。
信息与网络安全 Diffie-Hellman密匙交换算法 题目练习相关推荐
- 隐私计算加密技术基础系列-Diffie–Hellman key exchange
1 密码学 1.1 背景 隐私计算(Privacy-preserving computation)是指在保证数据提供方不泄露原始数据的前提下,对数据进行分析计算的一系列信息技术,保障数据在流通与融合过 ...
- Diffie Hellman密钥交换
In short, the Diffie Hellman is a widely used technique for securely sending a symmetric encryption ...
- DH密钥交换算法的python实现——Diffie–Hellman key exchange
文章目录 前言 DH交换算法简介 DH算法 Python算法的实现 后记 前言 DH交换算法简介 Deffie-Hellman(简称 DH) 密钥交换是最早的密钥交换算法之一,它使得通信的双方能在非安 ...
- 如何在简中版 MathType 安装过程中,就能输入产品密匙?
该问转载于:https://bbs.kafan.cn/thread-2031670-1-1.html 感谢原创作者提供的分享!本人也做一次搬运工,将好的东西分享给大家. 之前的三种方法见下面的地址: ...
- 工作奇谈——使用对称密匙加密数据
1.对称密匙及对称加密算法DES简介 对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据.它的最大优势是加/解密速度快,适合于对大数据量进行加密. DES算法全称为Data ...
- Linux中ssh基于密匙的安全验证过程是怎样的?
在Linux中,ssh是非常重要的存在,但很多人对"ssh"这个概念很模糊,听起来也很晦涩难懂,那么Linux ssh是什么?有什么用?这篇文章为你解答一下. SSH是一种协议.S ...
- openssl-key-exchange 基于ECDH (Elliptic-Curve Diffie–Hellman) 的密钥交换流程
openssl-key-exchange 本文摘自我在GitHub的开源项目 https://github.com/zhoupeng6d/openssl-key-exchange 简介 该方案介绍一种 ...
- linux密匙登录免密码登录,另外推荐一个免费的vps网站
设置公匙,私匙,上传等 一个免费的服务器网站需要ipv6 什么的,很麻烦 1.服务器端的操作 1.1.配置服务器sshd登录信息 vim /etc/ssh/sshd_config将PubkeyAuth ...
- 如何用 openssl 生成RSA双密匙;签名证书;加密文件邮件
网上已有好多关于openssl的帖子,但是基本上都很"实用",只讲如何创建证书来用于数据的加密,如何你只需要这些,那么可以去 "流浪的脚步"的博客 http: ...
- iOS -- OpenSSL生成RSA双密匙+签名证书(流程)
1.生成一对RSA密匙(非对称密匙,包含1个公共+一个私用), $ openssl genrsa -out <fichier> <taille> 例子: openssl ...
最新文章
- node.js express php,nodejs开发——express路由与中间件
- css样式中关于li的横向排列
- html安装网卡驱动,如何手动安装无线网卡驱动,网卡驱动安装教程
- 字符流与字节流转换输出
- CodeForces - 363D Renting Bikes(二分+贪心)
- Android面试总结经
- 2016-03-17 leaks 内存泄露
- CentOS安装SonarQube7.9.1
- 第15届Pwn2Own大赛确定目标和奖金
- axis1.4 java.sql_web Service问题。。。用axis1.4求帮助
- mac 删除 Windows 或 EFI Boot 启动盘的方法
- android edittext不可复制_【EditText】Android设置EditText不可编辑 | 学步园
- 考勤管理系统需求文档
- opendrive格式完全解析
- linux ctex缺少字体,Linux下xetex找不到字体
- 腾讯云即时通讯IM_ 小贴士
- 牙林一中2021年高考成绩查询,牙林一中2019高考成绩喜报、一本二本上线人数情况...
- 读书笔记-哈佛大学极简经济学2
- HTML学生个人网站作业设计:电影设计——爱影评在线电影(11页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
- 6.26线下深度交流:数据如何驱动新零售升级?