首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算具有已知分布的任意密码规则的熵?

如何计算具有已知分布的任意密码规则的熵?
EN

Security用户
提问于 2023-01-19 07:38:15
回答 1查看 92关注 0票数 -1

许多在线熵计算器都会做出某些假设(比如假设密码和生成密码的随机字符集一样罕见),或者用手挥手计算。我想知道如何计算密码分布的熵,它由一个或多个子规则组成,这些子规则是从已知分布中提取的。下面是一些需要计算的例子。

1.简单8字符密码

A-z0-9,随机序列

2.从流行文化

假设语料库中选择密码

  1. 从10,000,000词组语料库中选出5个词组
  2. 第一个字母可以大写

3.带有附加“强度”规则

的Diceware风格

  1. 从7776个单词列表中随机抽取4个单词(6^5,6-侧模,5卷)
  2. 这些单词与空格、-或根本没有空格字符(例如)连接。)-每个单词都使用相同的间隔
  3. 序列以美国键盘数字行中的10个符号中的一个开始或结束
EN

回答 1

Security用户

发布于 2023-01-19 07:38:15

一般过程是确定每个子规则的组合,以及子规则是如何相互作用的。如果它们在统计上是独立的(例如。随机骰子),然后在熵计算中将它们相乘。

使用表示法这里

  • L=密码长度;密码中的符号数
  • S=唯一可能符号池的大小(字符集)
  • 可能组合数= S^L
  • 熵=log2(可能组合的数目)

1.简单8字符密码

L=8

A-z0-9,随机序列

=1/26a-z=1/260-9= 1/10

每个字符为(26 + 26 + 10) = 62 =S

S^L = 62^8

熵= log2(62^8) = 47位

2.从流行文化

假设语料库中选择密码

  1. 从10,000,000词组语料库中选出5个词组
  2. 第一个字母可以大写

短语长度无关,重要的是组合。

关于短语部分:

  • L=1
  • S=10 000 000

上限规则是组合数量的两倍。

熵=log2(1,000万)*2) = 24位

3.带有附加“强度”规则

的Diceware风格

  1. 从7776个单词列表中随机抽取4个单词(6^5,6-侧模,5卷)
  2. 序列中的第一个或最后一个单词可以以大写字母开头,但不能同时使用大写字母(密码中的0-1大写字母)。
  3. 这些单词与空格、-或根本没有空格字符(例如)连接。纠正)
  4. 序列以美国键盘数字行中的10个符号中的一个开始或结束
  5. 三个字是S=7776=6^5
  6. 一个词是S= (7776 * 2),表示上限和下限。它可以是第一个词,也可以是最后一个词,将选项加倍。
  7. 连接将可能性乘以3( -NA,3个选项)
  8. 特殊字符使可能性乘以10。

S= ( 6^5 )^3 *2*2*6^5*3* 10

熵= log2(S) = 58位

注:附加规则只将S乘以120 (2 )*2*3.*( 10)与一个简单的4个单词diceware短语相比.。这增加了7位熵。一个简单的5字短语比上面的规则更有熵。,S乘以7776。

再读

  1. 计算密码熵?undefined
  2. 对于人工创建的密码,计算真实密码熵的最佳方法是什么?
  3. 密码熵计算有多真实?
  4. https://diceware.rempe.us/#eff
  5. XKCD #936:短复合密码,还是长字典密码?
  6. https://explainxkcd.com/wiki/index.php/936:_密码_强度
  7. https://theworld.com/~reinhold/dicewarefaq.html#calculatingentropy
票数 -1
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/267833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档