我本人不打算进入无法使用计算机进行安全通信的情况。但是,我可以想到很多实用的情况,在这种情况下,心理密码学将很有用。面临的挑战是记住要利用100多个以上的熵,但是我假设这可以事先完成。

这样的系统对旁道攻击(如垃圾翻阅)的敏感度如何?

评论

我认为“笔和纸”比“精神上”要容易得多。这样的答案也会受到欢迎吗?

OTP可以在头脑上完成,您会认为OTP是一个公平的答案吗?

@约翰·吉岑(John Gietzen):您能否详细说明“安全”的含义?例如,您是说对计算机安全还是对其他人安全?此外,对于任何数量的纯文本/密文对,都应确保安全,仅对仅密文攻击具有保护作用。

我的意思是,如果您处于胁迫之下并且需要进行沟通而没有发现您的消息。这将包括被一个小派系俘获,同时仍然能够留下编码消息等。

@IlmariKaronen,我会允许笔和纸,只要可以很容易地缓解边道攻击。也就是说,一旦完成了加密,您就应该能够破坏密码的内部状态。

#1 楼

(转为评论的答案。)

如果允许使用笔和纸,则可以使用256编号的纸相当容易地执行RC4算法(小的便条纸可能是理想的选择,因为它们很难被意外移动)以16 x 16的网格排列(我建议用十六进制编号,以方便索引),并带有两枚硬币或用于跟踪$ i $和$ j $的东西索引。该算法本身也很容易记住。要破坏内部状态,只需将音符打乱(如果需要,可以将它们切成小块并烧掉)。

最困难的部分是按键设置。通常,RC4的键控方式不仅费时费力(或多或少相当于256个加密步骤),而且并不能真正彻底地改变状态。对此的标准补救措施是丢弃输出的初始部分,这将使我们未来的无计算机密码学家需要做更多的工作。如果您可以安全地将状态作为一堆便笺进行携带,则可以执行一次,然后只为每条消息不断使用更多相同的密钥流,但是如果不能,则强烈建议您使用其他替代密钥设置机制。

此外,总是有纸牌游戏,尽管它需要一副纸牌,并且偏见要比RC4大得多。实际上,纸牌的设计与RC4非常相似,并且几乎可以肯定它是受其启发的。考虑到纸牌游戏的已知弱点,如果您想使用扑克牌进行手密码操作,则最好使用RC4-52(即标准RC4,在状态数组中仅使用52而不是256个元素),尽管我不知道如果有人对此进行了认真的密码分析。 (几乎可以肯定它比普通的RC4弱,但是我不确定该弱多少。不过,它仍然可能比纸牌更好。)

评论


$ \ begingroup $
您还可以将RC4状态更改为一副纸牌的56。只需对卡进行混洗,即可跳过所有繁琐的rc4初始化。给爱丽丝和鲍勃一个相同的甲板。对于他们应该能够手动进行的通信量,只要能够保持同步,就可以继续使用相同的卡。
$ \ endgroup $
–托马斯·阿勒
2012年10月17日20:17

$ \ begingroup $
@Thomas:我在上面的最后一段中建议使用标准52卡座。我不知道有56个卡片组如此常见,尽管显然它们确实存在。
$ \ endgroup $
–伊尔马里·卡洛宁(Ilmari Karonen)
2012年10月17日20:34



$ \ begingroup $
RC4今天真的很安全吗?如果没有,纸牌的安全性会更差吗?
$ \ endgroup $
–史密斯·约翰斯(Sm​​it Johnth)
13年5月4日在21:33

$ \ begingroup $
@SmitJohnth:如果使用得当(使用安全散列派生消息密钥,并且/或者至少丢弃输出的前768个字节左右,则每个消息密钥的加密量不能超过1GB),在“未知的实际攻击”的意义上,仍被认为是安全的。我仍然不建议将其用于新设计。不过,手密码是一种特殊情况:一方面,人们通常不期望手密码比计算机密码安全。另一方面,对于任何人而言,要手动生成大多数已知攻击所需的加密材料将非常困难。
$ \ endgroup $
–伊尔马里·卡洛宁(Ilmari Karonen)
13年5月4日在22:04



$ \ begingroup $
附言。这是我发现的博客文章,其中提供了有关RC4当前安全状态的更多详细信息。是的,RC4-52可能不太安全,而纸牌则更不安全。但是,它们都可能仍然适合手动使用(消息可能很少且很短)。
$ \ endgroup $
–伊尔马里·卡洛宁(Ilmari Karonen)
13年5月4日在22:07



#2 楼

我可以想到2种密码系统。

可以用一副纸牌完成的一个方案叫做Pontifex(又名纸牌),是为Cryptonomicon一书开发的。 Bruce Schneier的网站上提供了更多技术细节和使用示例。尽管应该指出的是,在Pontifex中发现了一些弱点。美国(整个系统更为复杂,称为VIC)。使用该系统的间谍只需记住一个短语和一个日期。从这两个项目中,可以生成一个棋盘格。它需要一套简单的规则来对消息进行编码。卡恩(Kahn)代码一书有几页,它们解释了如何使用此方案对消息进行加密。通过在垃圾中找到中间工作,发现了几名间谍。

评论


$ \ begingroup $
啊,蓬蒂菲克斯(Ponifefex)正是我想要的东西。
$ \ endgroup $
–John Gietzen
2011-09-29 13:15

$ \ begingroup $
跨越式棋盘本身并不安全。它还涉及使用一次性垫对消息进行实际加密,然后再通过无线电发送消息。
$ \ endgroup $
– WAR10CK
15年8月23日在13:45

#3 楼

只需使用几副卡片就可以实现自收缩LFSR。


0等于面朝下
1等于面朝下。

然后您可以在每个抽头点拆分卡座,然后对头中的项进行异或。 XOR完成后,将卡移动到下一个拆分卡座上;

键设置很容易,每次迭代都非常容易,但是操作起来会很痛苦。和密集的多项式,但这是安全的。

#4 楼

人们长期使用代码系统来代替密码。使用代码,您可以预先建立整个消息。 “约翰留着长胡子”可能意味着“破坏电话线”。否则干洗命令上的西装数量可能表明敌军的规模。

有时代码很笨拙,在不放弃含义的情况下放弃了代码的存在。一个电报代理人收到了对一条消息的答复,该消息询问“母亲是“死者”还是“死者”?除非有隐藏的含义,否则这是毫无意义的澄清。

使用一次,它们与保护它们的端点一样安全。多次使用后,它们留下了可以解码的独特模式。

#5 楼

这不适合熵部分。

凯撒(easy)或Substitution(集中)密码等古老而基本的编码机制也可以在心理上完成。想要在公共场所向少数人讲话或发送编码消息。
您可以进行“胡言乱语”,这有几种方法.....基本轮廓为


确定句子中“胡言乱语”(一些混杂字母)的位置及其占位符(例如空格,句号);您甚至可以为同一个占位符选择多个乱码,然后随机使用其中的任何乱码来进一步混淆
,确定实际单词的断点长度,然后必须插入乱码.....您甚至可以使用您可以处理的一系列排队的断点


评论


$ \ begingroup $
这很有趣,但并不是特别安全,因为简单的频率分析可以相当容易地发现消息。
$ \ endgroup $
–John Gietzen
2011-09-29 13:16

$ \ begingroup $
@JohnGietzen同意,不是很安全.....只是弹出了与Q.相关的内容,所以我分享了它
$ \ endgroup $
– AbhishekKr
2011年9月30日在8:28