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.假设某人建议用如下方法来确认你们两个人是否拥有同一密钥:

①你创建了一个与密钥长度相等的随机比特串,将它和密钥进行异或,并通过通道发送结果。

②你的伙伴将得到的分组与密钥(应该和你的密钥相同)进行异或并发回它。

③你进行核对并且如果你接收到的是你的原始随机串,你就证实了你的伙伴拥有同一密钥,而且你们两个人都还没有传递过密钥。

这个方案有缺陷吗?

解:有缺陷

  1. 不准确:双方密钥长度不确定相同,有可能对方的密钥的一部分和自己相同从而得到相同的异或结果。
  2. 不安全:通道传输是透明的,因为只有异或解码难题,容易收到攻击被破解。
  3. 易出错:因为为了确保解码足够安全,密钥长度往往很大,传递的比特串也同样很长,容易在传输过程中遗失或错误。

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。流程如下

  1. A向服务器发送信息E(KA,R)被截取
  2. A(假)把自己的名字A,目标Z和E(KA,R)发送给服务器
  3. 服务器返回E(Kz,R)
  4. Z知道Kz,所以解密E(Kz,R)得到R,然后利用R来解密明文M。

信息与网络安全 Diffie-Hellman密匙交换算法 题目练习相关推荐

  1. 隐私计算加密技术基础系列-Diffie–Hellman key exchange

    1 密码学 1.1 背景 隐私计算(Privacy-preserving computation)是指在保证数据提供方不泄露原始数据的前提下,对数据进行分析计算的一系列信息技术,保障数据在流通与融合过 ...

  2. Diffie Hellman密钥交换

    In short, the Diffie Hellman is a widely used technique for securely sending a symmetric encryption ...

  3. DH密钥交换算法的python实现——Diffie–Hellman key exchange

    文章目录 前言 DH交换算法简介 DH算法 Python算法的实现 后记 前言 DH交换算法简介 Deffie-Hellman(简称 DH) 密钥交换是最早的密钥交换算法之一,它使得通信的双方能在非安 ...

  4. 如何在简中版 MathType 安装过程中,就能输入产品密匙?

    该问转载于:https://bbs.kafan.cn/thread-2031670-1-1.html 感谢原创作者提供的分享!本人也做一次搬运工,将好的东西分享给大家. 之前的三种方法见下面的地址: ...

  5. 工作奇谈——使用对称密匙加密数据

    1.对称密匙及对称加密算法DES简介 对称密钥加密,又称私钥加密,即信息的发送方和接收方用一个密钥去加密和解密数据.它的最大优势是加/解密速度快,适合于对大数据量进行加密. DES算法全称为Data ...

  6. Linux中ssh基于密匙的安全验证过程是怎样的?

    在Linux中,ssh是非常重要的存在,但很多人对"ssh"这个概念很模糊,听起来也很晦涩难懂,那么Linux ssh是什么?有什么用?这篇文章为你解答一下. SSH是一种协议.S ...

  7. openssl-key-exchange 基于ECDH (Elliptic-Curve Diffie–Hellman) 的密钥交换流程

    openssl-key-exchange 本文摘自我在GitHub的开源项目 https://github.com/zhoupeng6d/openssl-key-exchange 简介 该方案介绍一种 ...

  8. linux密匙登录免密码登录,另外推荐一个免费的vps网站

    设置公匙,私匙,上传等 一个免费的服务器网站需要ipv6 什么的,很麻烦 1.服务器端的操作 1.1.配置服务器sshd登录信息 vim /etc/ssh/sshd_config将PubkeyAuth ...

  9. 如何用 openssl 生成RSA双密匙;签名证书;加密文件邮件

    网上已有好多关于openssl的帖子,但是基本上都很"实用",只讲如何创建证书来用于数据的加密,如何你只需要这些,那么可以去  "流浪的脚步"的博客 http: ...

  10. iOS -- OpenSSL生成RSA双密匙+签名证书(流程)

    1.生成一对RSA密匙(非对称密匙,包含1个公共+一个私用),  $ openssl genrsa -out  <fichier>  <taille> 例子: openssl ...

最新文章

  1. node.js express php,nodejs开发——express路由与中间件
  2. css样式中关于li的横向排列
  3. html安装网卡驱动,如何手动安装无线网卡驱动,网卡驱动安装教程
  4. 字符流与字节流转换输出
  5. CodeForces - 363D Renting Bikes(二分+贪心)
  6. Android面试总结经
  7. 2016-03-17 leaks 内存泄露
  8. CentOS安装SonarQube7.9.1
  9. 第15届Pwn2Own大赛确定目标和奖金
  10. axis1.4 java.sql_web Service问题。。。用axis1.4求帮助
  11. mac 删除 Windows 或 EFI Boot 启动盘的方法
  12. android edittext不可复制_【EditText】Android设置EditText不可编辑 | 学步园
  13. 考勤管理系统需求文档
  14. opendrive格式完全解析
  15. linux ctex缺少字体,Linux下xetex找不到字体
  16. 腾讯云即时通讯IM_ 小贴士
  17. 牙林一中2021年高考成绩查询,牙林一中2019高考成绩喜报、一本二本上线人数情况...
  18. 读书笔记-哈佛大学极简经济学2
  19. HTML学生个人网站作业设计:电影设计——爱影评在线电影(11页) HTML+CSS+JavaScript 简单DIV布局个人介绍网页模板代码 DW学生个人网站制作成品下载
  20. 6.26线下深度交流:数据如何驱动新零售升级?

热门文章

  1. Mysql的锁类型有哪些?
  2. 计算机辅助设计技术水平证书,计算机程序设计工程师技术水平(java)证书就是计算机技术与软件专业技术资格考试的程序员证书么?...
  3. matlab修改图片部分像素值
  4. 华三H3C交换机路由器如何配置dhcp中继(dhcp relay)
  5. UVa12235 Help Bubu
  6. 稳压二极管的工作原理是什么?
  7. 第二重要极限公式推导过程_土木考研 土力学第八章公式推导
  8. Bsphp验证系统,免费网络验证系统
  9. 为什么很多人交易十几年都做不到稳定盈利呢?
  10. WPF QQ群发助手