1、预共享密钥

顾名思义就是事先共享密钥,因为再网络上传播密钥确实是一个难题,而且也很容易被人截获然后造成一定的影响。所以我们可以线下事先互相告知自己使用的密钥是什么,但是一个两个还好,假如我们要使用加密通信的是一个群体那怎么办,每个人都要知道群体中其他所有人的密钥?所以这种密钥的分配方式并不适合一个十分大的群体。

2、密钥中心分配

大家都被自己的密钥交给密钥中心,比如A和B要通信,那么密钥中心就根据本次通信随机生成一个密钥,然后将该会话的密钥使用A的密钥加密后发送给A,然后将该会话密钥使用B的密钥加密后发送给B,这样A和B就使用密钥分配中心产生的临时随机密钥进行通信即可。

3、DH密钥分配算法

DH密钥分配算法的基础是基于离散对数的难解性,像RSA算法和DH算法之间也有相似的地方。我们同样可以不用那么深入的了解内部的数学原理。我来给你比喻一下,就是通信双方A和B首先都持有一些公开的材料,然后A和B随机生成一个随机数然后将其与公开的材料融合,然后互相交换他们各自生成的融合物,最后A和B根据收到的融合物就可以生成最后要通信的密钥了,虽然很神奇,但是数学就是很神奇的东西。中间人无论获取的是A还是B发送的融合物都无法知道它们的会话密钥,因为如果中间人如果要知道那他就必须解出一个十分庞大的离散对数的问题,就是因为这个问题几乎不可能解出来,所以DH算法才会这么放心的将A和B之间的融合物互相交换。融合物就像一个谁都打不开的箱子,里面承载着会话密钥,A和B使用这个坚固的箱子进行会话密钥的协商。

4、非对称加密

非对称加密并不需要关心密钥的分配问题,因为只有私钥才能解开公钥发送的信息,所以只要将公钥给别人,自己用私钥解开就OK了。

图解密码学密钥的分配方式相关推荐

  1. 图解Go语言内存分配 https://juejin.im/post/5c888a79e51d456ed11955a8

    图解Go语言内存分配 Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理.这样可以自主地实现更好的内存使用模式,比如内存池.预分配等等.这样,不会每次内存分配都需要进行系 ...

  2. 内存的分配方式有几种? 动态内存的的传递注意事项!

    1.内存的分配方式分为   静态存储区.栈.堆. 静态存储区:内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在,比如   全局变量. 栈:在栈上创建,在函数(main函数或其他子函 ...

  3. C++内存管理与分配方式

    C++的内存管理与内存分配方式,实际上是两个问题. C++程序在编译与运行过程中,实际上可能用到五种存储区域. 栈(stack).函数运行过程中创建的局部变量都存储在栈上.随着函数或代码块的运行结束, ...

  4. C++内存分配方式详解——堆、栈、自由存储区、全局/静态存储区和常量存储区

    栈,就是那些由编译器在需要的时候分配,在不需要的时候自动清除的变量的存储区.里面的变量通常是局部变量.函数参数等.在一个进程中,位于用户虚拟地址空间顶部的是用户栈,编译器用它来实现函数的调用. 和堆一 ...

  5. 操作系统:内存连续分配方式采用的几种算法及各自优劣

    连续分配方式(交换技术),是指为一个用户程序分配一个连续的内存空间.它主要包括单一连续分配.固定分区分配和动态分区分配. 注意:此处的连续内存分配是将整个进程的数据整块加载到内存之中. 1.单一连续分 ...

  6. 操作系统【连续式分配方式、隐式链接、显示链接、索引方式、混合索引、位示图、成组链接】

      目录 1.连续式分配方式 2.隐式链接 3.显示链接 4.索引方式 5.混合索引 6.位示图 7.成组链接 1.连续式分配方式 2.隐式链接 操作步骤:顺序逐个访问盘块. 3.显示链接 4.索引方 ...

  7. C++程序内存分配方式(堆与栈)

    一.内存布局 1.栈区(stack):由编译器自动分配释放,存放函数的参数值,局部变量值等,其操作方法类似数据结构中的栈. 2.堆区(heap):一般由程序员分配释放,与数据结构中的堆毫无关系,分配方 ...

  8. C/C++:程序的内存分配方式

    转载自:http://ryansky.blog.51cto.com/187974/86286 1.内存分配方式 内存分配方式有三种: [1]从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内 ...

  9. 图解Go语言内存分配

    Go语言内置运行时(就是runtime),抛弃了传统的内存分配方式,改为自主管理.这样可以自主地实现更好的内存使用模式,比如内存池.预分配等等.这样,不会每次内存分配都需要进行系统调用. Golang ...

  10. C/C++内存分配方式 .

    1.内存分配方式 内存分配方式有三种: [1]从静态存储区域分配.内存在程序编译的时候就已经分配好,这块内存在程序的整个运行期间都存在.例如全局变量,static变量. [2]在栈上创建.在执行函数时 ...

最新文章

  1. 湖北孝感计算机职称考试,2015湖北职称计算机考试报名:孝感职称计算机报名入口...
  2. 互联网协议 — NTP 时间同步协议
  3. php中接口调用方法的区别,phpcms常用接口调用方法
  4. 11岁过python1级_11岁表弟写的Python零基础入门笔记!
  5. 重学java基础第二十四课:标识符合关键字
  6. 如何在一个html页面中提交两个post,如何在同一个页面上从Django和Ajax获得多个post请求?...
  7. java 判断int类型为空
  8. Lynis 检测自身安全漏洞工具(本机)
  9. 计算机的编程发源地,计算机编程: C典型上机试题
  10. 将图片嵌入程序文件的一点研究
  11. python 反爬机制_python3爬虫--反爬虫应对机制
  12. B2B多商铺初期权限数据库设计
  13. Java 避免创建不必要的对象
  14. 粒子的自旋数,是否就是弦在膜上的关系
  15. java读取配置文件的详细写法,Properties配置文件读取相关java知识
  16. 华硕笔记本k555拆机图解_华硕K43系列笔记本电脑拆机清灰图文超细版教程
  17. CE找基址及偏移教程 外挂必学
  18. 【已测】开源PHP个人导航网站源码,有后台
  19. MATLAB:简单GUI的设计流程
  20. U3D学习项目一:2D横版小狐狸闯关游戏(代码部分一)

热门文章

  1. TI DSP COFF->EABI输出格式切换
  2. 思维破局:认知水平低,是一个人最致命的短板
  3. OpenSSL密码库算法笔记——第2.4章 三种模运算的比较
  4. segue跳转_使用SwiftUI的Segue Shenanigans
  5. excel 方框打钩
  6. nginx通过url跳转到另外的一个url上
  7. python jinja2_Python jinja2
  8. 有监督学习、无监督学习以及半监督学习详解
  9. CocosCreator 制作微信小游戏排行榜,超越好友,分享功能
  10. vue 统计中英文字符串长度_计算字符串长度以及截取字符串长度(英文占1个字符,中文汉字占2个字符)...