首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从熵的角度看,一个可发音的密码有多安全?

从熵的角度看,一个可发音的密码有多安全?
EN

Cryptography用户
提问于 2014-10-22 13:22:06
回答 2查看 1.5K关注 0票数 11

目前已有一些强有力的研究,如支持、可发音密码的使用以及多个 工具等提供此类密码生成的方法。

根据这个问题,密码的熵取决于它的生成方法,但是我如何确保生成的可发音密码有足够的熵供我使用?(例如,对于pwgen开源软件)

下面是用于生成可发音密码的伪代码。然而,这可能是最简单的解决方案,我对现有的“常规”方法相当感兴趣。

代码语言:javascript
复制
vowels = A, AI, AU, E, EA, EE, I, IA, IO, O, OA, OI, OO, OU, U
consonants = B, C, CH, CL, D, F, FF, G, GH, GL, J, K, L, LL, M, MN, N, P, PH, PS, R, RH, S, SC, SH, SK, ST, T, TH, V, W, X, Y, Z
theLastOneIsAVowel = True
while length(strPassword) < Minimum_Length do
if theLastOneIsAVowel then
strPassword = strPassword + randomElementOf(consonants)
else
strPassword = strPassword + randomElementOf(vowels)
endif
theLastOneIsAVowel = ~(theLastOneIsAVowel)
endwhile
EN

回答 2

Cryptography用户

回答已采纳

发布于 2014-10-23 16:21:05

是的,熵取决于产生过程。学习你的链接对在那里使用的(固定)进程有答案:

为了克服这个原始程序中的缺陷,我们生成了没有重复的八个字符可发音密码的完整列表(≈12亿),并以相同的概率分配了这个列表上的每个密码,从而产生了30.2位的熵。

这相当于5个基本64个字符。也就是说,与使用随机基数64个密码相比,通过使密码可发音,每个字符损失了大约2.25位的熵。

然而,就像他们使用的实现一样,该算法有可能有缺陷,并且没有以相同的概率生成所有可能的可发音密码。在这种情况下,你会失去更多的熵。因此,我会仔细检查程序,然后再依赖它。

票数 8
EN

Cryptography用户

发布于 2014-11-09 05:53:57

“如何确保生成的可发音密码有足够的熵供我使用?”

一种确保密码具有“足够的熵供我使用”的方法:从/dev/随机或其他安全随机数生成器中获得至少那么多的新熵块,然后将这些比特编码为密码,使每个可能的位块生成不同的密码。

有很多种方法可以将原始位编码成更容易输入密码、密码或ID号的方式。

例如,如果您确定64位熵是足够的,那么就可以得到64位新的随机比特。然后选择下列任何一种:

  • 使用PGP词表将这64位转换为由8个非常不同的英语单词组成的密码,在它们之间有空格。(这样产生的短语在听完电话后很容易破译)。
  • 使用S/关键词列表将这64位转换为由6个带有空格的简短英语单词组成的密码。(对于普通键盘上的触摸打字员来说,这可能是用期望的熵值输入密码的最快方法)。
  • 使用Diceware列表将这64位转换为一个密码,该密码由5个多多少少的普通英语单词组成,它们之间有空格。
  • 使用Antti Huima Bubble Babble Encoding (a) (b) (c) (d),交替元音和辅音,将这64位转换成一个29字符的可发音密码短语。
  • 使用rsaarelm 涡旋编码,交替元音和辅音,将这64位编码成一个可发音的23个字符的密码.
  • 看起来,rsaarelm vorud编码的代码可以用于交替元音/dipthongs和辅音/辅音簇技术,这是由最初的海报描述的--它看起来像是用这种编码编码64位,产生了大约24个字符的可发音密码,多少取决于这些位的确切值。
  • 使用八进制编码将这64位转换为22位数字.
  • 使用base32编码将这64位转换成一个14个字符的密码.
  • 使用基- 64 -url编码将这64位转换为11个字符的密码.
  • 使用Ascii85编码将这64位转换为10字符密码.

(与人们普遍认为较短的密码更容易键入相反,后两种编码通常产生的密码比其他编码要花费更多的击键次数和更长的键入时间,当您将"shift键“作为击键时)。

因为一旦您选择了这些编码之一,每一个64位的可能块都会生成不同的密码或密码,因此所有这些编码和它们生成的所有密码都是同等安全的。每一种编码--只要你开始使用64位熵的比特块--就会产生一个包含64位熵的密码。

票数 5
EN
页面原文内容由Cryptography提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://crypto.stackexchange.com/questions/19753

复制
相关文章

相似问题

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