昨天我进行了一次工作面试,他们问到唯一可以打破一次性密码夹的情况是什么,我的答案是“当密钥分发过程不够安全时”。

他们赞扬了我的回答,但又问了我一个问题:如果密钥分配是100%安全的,为什么还要使用一次性垫?为什么不能简单地发送纯文本消息,因为您确定分发是100%安全的?

该问题的正确答案是什么?

评论

我不确定“安全通道”的定义是什么,但是密钥分配是在一个方向(A-> B),消息是在另一个方向(B-> A)。

错误的密钥生成也会带来问题,请参见VENONA等人

可能是您希望有人浪费资源,试图在不安全的通道上破坏代码(不知道它是OTP)。

“ 100%安全”实际上并不存在,值得牢记。

即使不知道长度,重用OTP也是非常糟糕的,尤其是在流未经压缩或具有结构(例如标头)的情况下。如果您轮流对每个班次进行XOR运算,则在重新使用打击垫时会得到1的下降。在A处设置的位将与在B处设置的位相关,因此A + B将具有更多的零,因此(A + K)+(B + K)= A + B也会具有更多的零。

#1 楼

您现在可以分发密钥并在以后发送消息。

假设您是在敌后执行任务的间谍。随身携带密钥(安全分发),当发现秘密时,可以使用一次性密码键盘安全地发送它。

评论


密钥和实际消息的大小之间的差异是否也有效?

–user13267
16年6月13日在0:08

@ user13267不适用于一次性垫。 OTP密钥必须至少与消息一样长。这就是系统的重点。

–cpast
16年6月13日在1:35

@cpast这就是为什么间谍经常使用大型OTP进行部署以允许它们以后发送安全消息的原因。在这种类比中,密钥分发将是您将OTP掌握在间谍(以及处理程序或与之通信的任何人)手中的任何过程。

–HopelessN00b
16年6月13日14:40



莫斯科-华盛顿热线(称为“红色电话”,但从未真正使用电话)是另一个很好的例子。 (据报道,这实际上是在使用OTP的,至少在第一次安装时就使用了。)他们不时通过外交邮袋交换OTP,这非常安全,但速度很慢,必须提前安排。但是这样做之后,热线可以在必要时使用,这就是重点。

– zwol
16年6月13日在20:24



另一个很好的例子是第二次世界大战的SIGSALY,如99%Invisible的插曲[Vox Ex Machina])99percentinvisible.org/episode/vox-ex-machina中所述。它使用具有随机噪声的记录作为一个时间垫来加密白宫与世界各地盟国领导人之间的电话通话。记录将被安全地提前发送。在通信结束后,将销毁它们以确保向前保密。

–大卫
16年6月14日在13:10

#2 楼

您今天可以安全地分发某些内容,并不保证您明天或下周或明年可以做到这一点。

此外,用于分发密钥的安全通道可能会受到限制。也许这取决于实际在A点和B点之间旅行的某人...也许它仅在某些时间可用-例如周末或冬季...也许它的容量非常有限-每封邮件的最大大小和/或可以发送的邮件总数(例如,如果经常使用太多则显得可疑)...您可能还想“保存”用于发送物理项目(例如OneTime-Pads或病毒样本)的通道,实际上是无法通过无线电或Internet进行传输的-与文本和图像不同...

但是最大的障碍可能是时间方面的。情报-间谍搜集的类型,用于战争和政治-保质期非常有限。如果您不能立即获取信息,那么它就会失去其价值-要么是因为稍有先机而已,要么因为发生任何警告,要么是因为相同的信息又从其他渠道渗入。

因此,使用安全的通讯渠道-亲自进行运送,快递员,轮船上或飞机上的官员的来信,通过人员链传递信息-可能太慢了。这就留下了快速,但不安全且易于监控的方法,例如无线电,电报,电话和互联网。通过这些不安全的渠道可以非常快速地发送信息,但是它们并不安全...因此,您必须先通过一次性安全通道对信息进行加密,以确保信息安全。

与您的安全频道不同,它几乎100%保证明年还将提供电话,广播和互联网。

评论


如果容量有限,则OTP无法使用,因为OTP需要消息大小的密钥,并且同一密钥不能用于多个消息,因此我们需要足够的密钥来覆盖下一个密钥之前的所有将来消息(大于讯息)。

– ewanm89
16年6月12日在16:19

@ ewanm89我指的是“安全通道”中的容量问题-最初用于承载OneTime键盘的通道。根据定义,如果消息是通过有保证的安全通道发送的,则不必加密消息。但是,该渠道仍然可能对所发送的介质造成容量限制:也许这是一个带有空心鞋跟的快递员,只能拿十张纸。也许这是一种走私一张缩微胶卷或一张存储卡的方式。也许-去上学了-它是只只携带一张小纸的鸽子。 OTP +无线电没有这样的限制!

–巴德·科珀罗德(Baard Kopperud)
16年6月12日在18:31

是的,但是OTP本身必须通过这样的安全通道发送。使用OTP时,您通过该安全通道发送的数据等于或多于直接发送消息的数据,因此容量不成问题,为什么不使用该安全通道直接发送消息。其余的都很好,并且时间限制或无法可靠访问该安全通道是使用OTP而不是安全通道的正当理由。

– ewanm89
16年6月12日在18:38



现在您可能想要添加,如果安全通道在您回到总部时正将信息移交给您,并且您处于敌国领土,那么我们无法保证甚至可以将其退还给您,更好地通过以下方式加密并发送给总部立即广播,而不是等到您到达那儿之前被枪杀时亲自交给它。

– ewanm89
16年6月12日在18:42



我并不是说消息会更长,密钥必须是更长或更长时间,而我直接指出安全通道的容量并不是问题所要使用的OTP的原因,而是其他原因。答案是正确的。是的,通常的方法是将其作为安全通道带走,这在所有给出的时间原因中都可以解决。

– ewanm89
16年6月12日在21:16

#3 楼

在某些实际情况下,您交换密钥后仅知道在发送密钥后该密钥未被拦截(即,交换是100%安全的)。如果您直接发送了秘密消息,则可能已经泄露了该秘密消息,但是由于您仅交换了密钥,因此可以将其丢弃。顺便说一下,这就是量子密码学的思想。

量子密码术的另一个特点是您不能选择密钥。它只是随机的,本身不包含任何信息。实际上,您甚至无法通过100%安全的量子通道发送任何非随机生成的信息,这意味着您无法直接发送秘密消息。如果您想了解有关该主题的更多信息,我可以推荐有关Quantum密钥分配的Wikipedia页面。

评论


关于量子密钥分发的要点。

–约翰内斯·库恩(Johannes Kuhn)
16年6月12日在14:13

尽管这是很好的信息,但由于QKD在行业中并不十分普遍,因此我不确定这是否是采访的实际情况。正如我在下面的评论中提到的-这是一次工作面试,而不是关于密码学的论文。

–杰西·威廉姆斯(Jesse Williams)
16年6月15日在13:57

+1。您可能会在此答案中添加一些历史系统,这些系统在用于发送一次性便笺的包裹上使用了防篡改封条,例如加拿大的OTFP / OTLP系统; DDR和苏联OTP系统;等等

– David Cary
16年6月15日在14:11

#4 楼

我猜想,今天的安全分发不能确保明天的安全分发是可以的,但答案并不存在,但没有另一个原因:通常是从某个中央站点向“间谍”分发密钥,而间谍则是向相反方向发送消息? (假设间谍是生成消息的间谍;当然可以向任一方向发送消息。)一个方向的安全性不一定意味着另一个方向的安全性。

一个明显的例子是潜艇。派遣执行任务。他们在离开之前就获得了一次性的便笺本,但是使用这些便笺本来加密要发送回基地的邮件。 (基地可能正在向他们发送消息,这当然会得到另一个答案:您不希望潜艇必须回到港口以安全地从基地接收消息。)

德国海军在第二次世界大战中使用Enigma而不是一次性垫是很好的事情。

评论


但是潜水艇实际上使用OTP吗?使用OTP将限制他们在任何特定任务中可以加密(或解密)的文本量。

–David Richerby
16年6月14日在14:33

一次读取然后擦拭CD /磁带/硬盘形式的一次性垫将产生相当大量的完全安全的通讯。

–Sobrique
16年6月15日在8:27

无论如何,@ DavidRicherby都基于字典的压缩在海底通信中使用(例如VLF无线电,用于岸对船)。从历史上看,它已被用于海军通信,以掩盖消息内容并对其进行有效编码(即使是高效的莫尔斯电码操作员,其比特率也相当低)。到70年代初,您将获得一个存储20MB的磁带驱动器(并且您不需要8位/符号,那么6个就足够了)

–克里斯H
16年6月15日在9:36

#5 楼


昨天我接受了一次工作面试,他们问唯一一次可以破坏一次性密码夹的情况是什么,我的答案是“当密钥分发过程不够安全时”。


我不是要给你关于面试的不安全感,但我很确定这不是正确的答案-否则,我不明白你的答案。这是因为您的答案适用于任何加密方法-如果您不能安全地通信对称密钥,那么它就结束了。

唯一可以破坏OTP的情况(除了明显的错误之外)交流方,例如重用OTP的某些部分,或让敌人移交它)是使用非真实随机来源生成的。这将使敌人可以进行频率分析,并试图推断出交换的文字。

实际上,一次性垫可确保完美的安全性,并且在理论上是坚不可摧的。不能广泛使用的唯一原因是因为它不切实际。


如果密钥分配是100%安全的,为什么还要使用一次性垫?为什么不能简单地发送纯文本消息,因为您确定分发是100%安全的?


此问题的答案是:因为安全通道可能并不总是可用,所以可以带宽有限,或者使用成本可能太高。因此,它可以用于交换(一次)小型密钥,而不能(通常)进行冗长的私人通信。

评论


“小型密钥,但不是(通常)冗长的私人通信”-但是OTP密钥必须至少与它加密的消息一样长。有限的可用性是一个合理的原因,但不是带宽。

–蓝胡子出局了
16年6月13日在20:32

根据定义,OTP密钥由真正随机的源生成。没有这个假设,就不可能证明其坚不可摧。因此,不能由真正的随机源生成不是打破OTP的有效方法。破解它的唯一方法是知道密钥。因此,他的答案是正确的(因为密钥仅与静止时的交换和保护一样安全。在这种情况下,假设静止时的保护不可行进行攻击)。

– Qwerty01
16年6月13日在23:45

我同意@ Qwerty01-利用加密方案的错误实现并不意味着您已经破坏了加密方案本身。

–乔恩·本特利
16年6月14日在12:09

@ Qwerty01您能否引用排除非真正随机生成的定义?我之所以这样问是因为Wikipedia上有关OTP的文章有超过10年的更改历史,因此称真正的随机密钥为“挑战”,或者使用有条件的“如果密钥确实为随机”,则不可能破解。如果只是定义问题,那么访调员可以使用其他人。

– techraf
16年6月16日在1:01



他们之所以提到它,是因为很难生成真正的随机数据。因此,人们倾向于使用CSPRNG来生成所需的数据,而不是真正的随机数据。如果数据不是真正随机的,那么您正在攻击生成密钥而不是OTP的算法。另一种思考的方式是这样的:如果您使用的RNG每次都返回相同的数字来生成RSA密钥,则该密钥将被轻易破坏:不是因为RSA问题,而是因为您的问题RNG。

– Qwerty01
16年6月16日在1:30



#6 楼

这是其他答案未提及的另一个原因:

您可以使用一次安全通道来传输OTP,然后在以后多次发送安全消息,直到您的OTP用完为止。

这很有用,因为获得100%安全(或接近它)的频道可能非常困难和/或成本高昂,而不安全的频道则便宜,快速且易于使用,因此有利于最大程度地减少频率您对安全通道的使用。

示例:通过将硬盘驱动器实际运送到目的地来传输价值1 TB的OTP数据(操作成本高昂且不便)。然后,您可以在需要时通过Internet发送价值1 TB的加密邮件。这比反复使用安全通道手动发送邮件要好。

#7 楼

如果要加密的消息比填充中的字符/字节长得多(例如多次),则一次性填充可能会损坏。这等于重复使用相同的“一次性垫”,并且同样容易受到解密的影响。

评论


如果您重复该打击垫,则它不再是一次性打击垫。

–安德斯
16年6月14日在18:42

#8 楼

老实说,我认为一个合理的答案是您不能保证100%的安全性。或至少这将是我的答案,然后可能是“假定安全性为100%的任何人都不了解安全性。此外,假定安全性为100%的任何人与不安全性小于100%的人一样,甚至有更大的风险。”

评论


这与问题无关。无论您在所选通道上具有100%安全性,99%安全性还是50%安全性,问题仍然存在-我应该在该通道上发送OTP,然后再发送加密消息,还是我应该简单地在该通道上发送消息渠道?通道的安全性没有任何区别-如果有一种方法可以断开通道并获取消息,则可以使用相同的方法来获得OTP。

–乔恩·本特利
16年6月15日在13:50



我不同意-这不是关于安全的学位论文,而是一个面试问题。作为安全研发部门的招聘经理,我希望候选人能给我一个答案,表明在这个问题上注入了现实世界的思想。如果我正在寻找一个学术答案,我会很乐意断言在给出这样的答案之后。

–杰西·威廉姆斯(Jesse Williams)
16年6月15日在13:54

如果我是一名招聘经理并得到了答案,那么我将不再关心答案的有效性,而更担心他们无法正确理解该问题。这表明在关注细节和遵循说明的能力方面存在问题。我宁愿选择一个错误答案,至少应尝试回答该问题(毕竟,没有人期望知道所有事情),而不是不相关的“正确”信息。

–乔恩·本特利
16年6月15日在14:01

查看问题-“如果密钥分发是100%安全的,为什么还要使用一次性密码?为什么不能简单地发送纯文本消息,因为您确定密钥分发是100%的安全呢?” -很明显,假定通道的安全性已得到保证,他们想知道为什么要麻烦OTP。他们不是在问渠道是否可以100%安全。

–乔恩·本特利
16年6月15日在14:03

我不同意,但是……这只是表明,在面试中回答问题时,您在此事上受面试官的摆布。好像这个问题不是“解决x”或“ TCP / IP协议栈的组件是什么”。我更希望对安全性持怀疑态度,而不是那些刚获得学位并且精明的书信认为他们可以胜过系统的人-该系统即使在理想条件下也无法保证安全性。

–杰西·威廉姆斯(Jesse Williams)
16年6月15日在14:04

#9 楼

问题:


如果密钥分配是100%安全的,为什么还要使用一次性垫?为什么不能简单地发送纯文本消息,因为您确定分发是100%安全的?


这假设在分发密钥时有要发送的信息并非如此。这里给出的其他答案已经解决了这一点。另一个问题是,即使从原则上讲,密钥分发可能仅对密钥分发而言就足够了,而对于所需的信息传输却可能是不安全的。

一个例子是爱德华·斯诺登如何发送的问题安全地为您提供信息。我们假设来自斯诺登的所有通信都受到监控,如果您与他面对面会面,那么您将受到监控,从他那里收回的任何东西都将不会安全。因此,斯诺登没有办法让您获得纯文本文件而不会受到影响。最多您可以安全地将东西带到斯诺登。要实现您需要做的所有OTP方法。

使用OTP的安全协议可以按以下方式工作。我将硬盘上的图片复制并放在拇指驱动器上。我请一个我信任的人给斯诺登一个大拇指。在此人与斯诺登会面后,发现他这样做了,搜查了他所有的财产,中央情报局监视他,他的房子经常被盗,并在计算机上安装了间谍软件。因此,显然他不能安全地从Snowden接收任何东西。他从我那里获得的两张图片,并将这两张图片上传到Flickr。我所要做的就是下载他最新的两篇Flickr帖子,从硬盘上的图片中减去图片文件,然后将两个噪点加起来以获得消息。

评论


我认为您还不了解这个问题。 OP知道什么是OTP以及它如何工作。以您的示例为例,问题是-如果您可以安全地将包含OTP的拇指驱动器交给该人,那么为什么不首先简单地将消息传递给他们,因为您已经有了一个安全的通道来给他们拇指驾驶。

–乔恩·本特利
16 Jun 15'13:47



@JonBentley我已经正确理解了这个问题,我在其他一些关于信息传输的答案中已经解决了这个问题,该问题将在以后没有安全通道可用时进行。

–伊布利斯伯爵
16年6月15日在16:01

@CountIblis如何回答以下问题:“如果您100%确定密钥分发是安全的,为什么要使用OTP?”很明显,您不明白这个问题。这是在回答“如何使密钥分发更安全?”这一问题。

– Qwerty01
16年6月15日在20:41

@ Qwerty01我确实理解了这个问题,只是在OTP中以一种在实践中使用它的方式,这是一件非常琐碎的事情。密钥分配不是信息传输的重点,甚至不可能通过此通道安全地传输信息。监护人可以派一名记者到斯诺登,并给他一个载有照片的拇指驱动器。但是在他回来的​​路上,他所有的财产都可能被搜查。这样就根本没有从Snowden到Guardian的安全通信通道,但是可以使用OTP。

–伊布利斯伯爵
16年6月15日在21:09

因此,OTP密钥只能以一种安全的方式发送,因为当我要去斯诺登时,情报部门不知道我打算见他。但是遇见他后,我可能被监视他公寓的特工发现,所以我从他那里夺回的任何东西都不安全。

–伊布利斯伯爵
16年6月15日在21:12

#10 楼

如果您发送的确充满信心的文本在任何情况下都无法被计算机截获,则应该使用OTP并面对面传递密钥,但是您可以通过邮局邮寄加密的邮件。如果使用得当,那么任何人都无法破坏消息。即使在1'028'526'910年。

评论


问题不在于OTP或它们如何工作。问题是-如果您可以面对面传递OTP,那么为什么不面对面传递消息并跳过使用OTP带来的额外麻烦。要回答该问题,您需要专门解决使用OTP而不是消息本身的原因。

–乔恩·本特利
16年6月15日在13:53

@JonBentley当然,问题不在于如何与您的妻子在家里安全地沟通...。

–伊布利斯伯爵
16年6月15日在16:33

@CountIblis我不太了解您的评论。我的观点是,如果您有一种安全地传递OTP的方法,那么您可能会使用这种方式传递消息,并且OP询问您为什么要在这种情况下使用OTP。

–乔恩·本特利
16年6月16日在10:15

@JonBentley谁说我要向OTP密钥的接收者发送一条消息?可能是另一回事,反向路径可能根本不安全。斯诺登想向我发送安全消息,但他无权向我提供OTP密钥。我可以向他提供OTP密钥,但是我无法从他那里收到任何消息,因为会发现我去过他,并且会对其进行搜索。

–伊布利斯伯爵
16年6月17日在22:24

@CountIblis是的...这是该问题的一种可能答案。你想说啥?您似乎以为我在问这个问题,但我不是。我正在澄清问题是什么,因为此答案无法理解问题。

–乔恩·本特利
16年6月18日在17:18