tea 加密密钥生成

想象一下,您要玩涉及使用骰子的棋盘游戏,例如专卖,Yahtzee,Cluedo,Dungeons&Dragons ... 1在大多数情况下,至少在您对玩公平游戏感兴趣的地方,您想成为非常确定骰子结果是随机分布的。 换句话说,对于六面骰子,您希望每一卷都有相等的机会出现数字1到6。 这似乎是要定义的一件相当简单的事情,就像许多初次看似简单的事情一样,数学家们设法使整个学习领域变幻莫测,从而使过程变得极为复杂。 4

让我们转到计算机。 与棋盘游戏相反,您通常希望计算机在每次要求输入相同输入的条件下都执行相同的操作:假定输入相同的初始条件时,计算机的行为是确定性的。 对于计算机而言,随机行为通常不是一件好事。 当然,该规则也有例外,例如,当您想使用计算机玩游戏时,如果游戏玩法没有变化,事情会很快变得无聊。

还有一个大例外:密码学。 并非所有的密码学都可以; 您肯定希望在几乎所有情况下都使用同一密钥将单个纯文本加密为单个密文。 但是,在一个区域中,随机性很重要,这就是创建用于执行这些操作的加密密钥。 事实证明,您需要具有很多随机性才能创建唯一的密钥-密钥确实需要真正唯一。 如果你没有足够的随机性,不仅可能产生相同的密钥(或一组人)多次,但其他人可能也这样做。 如果他们能猜出您正在使用什么键,他们可以做一些事情,例如阅读您的消息或假装是您。

鉴于这些正是密码学试图阻止的事情,拥有大量随机性显然很重要。

5最后一句中的问题是“如果”和“应该”。

首先,我们需要找到一个好的熵源,并证明它是好的。 这样做的好处是,实际上有很多自然的熵源。 计算机周围的气流通常足够随机,因此可以测量温度变化,从而提供足够好的熵。 人与外围设备的交互(例如鼠标移动或键盘击打)可以提供更多的熵。 过去,使用了网络数据包接收时间之间的差异,但是有人担心,这些差异实际上比以前认为的要少,并且可由外部各方测量。 6有一些算法可以使我们测量随机熵源的状态,尽管它们当然无法预测未来的随机性。

不过,让我们假设我们有一个很好的熵源。 或假设我们有几个很好的熵源,并且我们相信当我们将它们组合在一起时,它们作为一个整体就足够好了。

这就是计算机和操作系统通常所做的事情。 他们从各种熵源收集数据,然后将其转换为比特流(计算机最喜欢的1s和0s语言),然后可用于提供随机数。 当他们做得不够好时,就会出现问题。

发生这种情况的原因多种多样,主要的两个是不良的采样和不良的组合。 即使您的熵源是好的,但如果您没有以适当的方式对其进行采样,那么所获得的结果也不会反映该熵源的“优”。 那是一个抽样问题。 这已经足够糟糕了,但是假设情况还不错,并且您有足够的熵源,那么组合算法应该可以解决此类问题。

但是,当您使用的算法没有做到这一点,或者甚至没有结合采样良好的良好资源时,就会遇到真正的问题。 我们知道,算法并非总是正确实施。 甚至有人指控某些政府安全部门将弱化的算法(只有他们知道并可以利用的弱点)引入世界各地的系统。 在专有和开放源代码世界中,都有一些非常糟糕的实施不当案例,这些案例导致了实际部署中的实际问题。 至少当您拥有开源实现时, 您才有机会对其进行修复 。

当这些算法(通常是这样)嵌入到硬件(例如主板上的芯片)中时,这个问题就变得更加复杂。 在这种情况下,很难修复,因为您通常不能只更换所有受影响的芯片,也可能很难追踪。 但是,无论您使用的是硬件还是软件,至少在好家伙和加尔斯(Good Guys and Gals™)看来,不良算法的影响在相当长的一段时间内都是存在着数百万个弱键的,这在保护身份或私人数据方面做得非常糟糕。 即使您设法替换了这些密钥,现在可以读取所有历史加密(如果已记录)呢? 例如,如果我可以伪造几年前签署交易购买房屋的人的身份,以使其看起来像我现在拥有它,该怎么办?

因此,熵可能难以管理,而且当我们遇到问题时,该问题的影响可能比我们立即想像的要大得多。


1我确定这些游戏有商标。 2

2我也知道《龙与地下城3》并不是真正的棋盘游戏。

3我曾经是地牢大师!

4例如,尝试仅阅读条目的第一段,以了解Wikipedia上的随机过程 。

5 ,游戏。

6通过测量放射性衰变可以得到另一个很好的熵源,但是您通常不希望计算机或他们的人工操作人员要求离它们足够近的放射性源才有用。

本文最初出现在 安全博客Alice,Eve和Bob上 ,经许可重新发布。

翻译自: https://opensource.com/article/18/1/entropy

tea 加密密钥生成

tea 加密密钥生成_加密密钥生成需要的是熵的良好来源相关推荐

  1. java 比特币私钥生成_如何生成自己的比特币私钥

    java 比特币私钥生成 In cryptocurrencies, a private key allows a user to gain access to their wallet. The pe ...

  2. 小程序 formid 生成_在线生成在线制作配音小程序

    输入文字,生成声音--在线用文字制作声音文件. 有男声.女声.童声.方言和英语,应有尽有,语音效果自然流畅. 在线配音生成器,无需下载安装,直接在线即可生成配音文件,你可以用于抖音快手等短视频里面的配 ...

  3. perplexity 衡量指标_怎样生成语言才能更自然,斯坦福提出超越Perplexity的评估新方法...

    困惑度是评估生成语言是否「自然」的最常见标准,它的值越小,则表示模型生成的句子越接近人类语言.但是这种基于统计的方法并不能很好地评估生成质量,因此本文提出一种新的评估方式 HUSE,它为自然语言生成提 ...

  4. ui unity 图片高亮_程序化生成UI模型与顶点动画

    顶点动画一般指通过顶点着色器对模型每个顶点独立运动的方法.在游戏中遇到碎片爆破或者聚合一类的.涉及到大量同类物体在有序和无序之间切换的特殊效果,就非常适合将所有物体顶点每帧位移和形变的迭代交付给GPU ...

  5. 用java写ods系统_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...

    TableGo是基于数据库的代码自动生成工具,低代码编程技术的实现,可以零代码自动生成SpringBoot项目工程.生成JavaBean.生成前后端分离的CRUD代码.生成MyBaits的Mapper ...

  6. excel怎么设置一个按钮就一点就生成一个表_条码生成软件如何批量生成DPD条码...

    之前有介绍过关于DPD条码的编码方式,校验算法,制作方法等等信息,今天主要给大家介绍一下如何用条码生成软件批量生成DPD条码.以Excel表为例,批量导入Excel表数据批量生成DPD条码. 1.数据 ...

  7. java生成iso9660工具_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(TableGo v7.0.0版)...

    TableGo_20210212 v7.0.0 正式版发布,此次版本更新如下: 1.新增对DB2数据库的支持 2.新增按字段生成文件,支持把字段.JSON.XML数据转换成任何代码 3.新增大量新的自 ...

  8. 生成对抗网络生成多维数据集_生成没有数据集的新颖内容

    生成对抗网络生成多维数据集 介绍(Introduction) GAN architecture has been the standard for generating content through ...

  9. mysql javabean 工具_基于数据库的代码自动生成工具,生成JavaBean、生成数据库文档、生成前后端代码等(v6.9.0版)...

    TableGo_20200520 v6.9.0 正式版发布,此次版本更新如下: 1.新增对JDK9及以上版本Java环境的支持 2.生成JavaBean更名为生成数据模型并且提供了C#.C++.Gol ...

最新文章

  1. 给求职的同学的几点建议
  2. boost::throw_exception的测试程序
  3. JavaScript字符串split方法
  4. 如何搭建一个WAMP环境
  5. vue 使用vue-print-nb 实现打印功能 和 用针式打印机打印模糊问题
  6. Linux下deamon(服务)的实现
  7. 联想g400从u盘启动计算机,【联想G40怎么从U盘启动】联想g40怎么设置u启动_联想g40从u盘启动...
  8. IDE也卷了,微软杀入嵌入式IDE
  9. 如何在笔记本电脑上搭建双系统(windows与linux)
  10. ppt怎么压缩,ppt压缩的技巧分享
  11. [自学笔记]UE4(虚幻四)初学者入门
  12. 农历大小月的确定方法
  13. vc 键盘按键KeyValue值
  14. 最棒的 7 个 Laravel admin 后台管理系统推荐 - 卡拉云
  15. Windows Sever 2008 本地安全策略之登陆策略
  16. 修改360浏览器主页
  17. Pytorch简单实现seq2seq+Attention机器人问答
  18. [2017纪中10-25]嘟噜噜 约瑟夫问题 递推
  19. SSE(Server-Sent Events)| 前后端demo参考
  20. 老java程序员告诉你要不要选择外包,外包公司的好处你知道吗

热门文章

  1. Java SAO操作-使用lambda代替字符串
  2. oracle 12c grid db 安装的的checklist
  3. 有人说中文编辑是解决中国程序员编程效率的秘密武器,请问他是一个银弹吗?...
  4. magento effects.js jquery.lazyload.js 冲突
  5. Selenium定位HTML元素(Python)
  6. 修改完/etc/fstab后重新挂载方法
  7. 修改am335x 制作android sd启动卡的bug
  8. MySQL 管理猿利器: MySQL ODBC for iPhone!
  9. Linux日志文件utmp、wtmp、lastlog、messages
  10. 程序员的算法课(2)-排序算法