首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无条件安全认证

无条件安全认证
EN

Security用户
提问于 2015-12-05 19:22:31
回答 1查看 234关注 0票数 -1

我试图为我的一次性Pad实现添加身份验证。

我知道要提供无条件的安全身份验证,我需要使用一次MAC认证

但是,我不明白为什么下面的解决方案(更容易实现)不能提供相同的安全级别:/

代码语言:javascript
复制
ciphertext = ((plaintext || H(plaintext)) XOR OTPKey)

With:
|| = concatenation
H = SHA-2
OTPKey is long enough to encrypt the plaintext and H(plaintext)

马洛里在这里不能强迫密文(因为一次性的便笺),所以他不能得到正确的明文或摘要.

是这样的吗?这能提供无条件的安全认证吗?

我知道在实践中它很容易受到已知-明文攻击的攻击,所以请不要在这种特殊情况下考虑它。我对无条件安全感兴趣,因为明文和摘要都可以从一次性Pad提供的信息论安全性中获益。

我对被动攻击感兴趣,而不是主动攻击。

假设Mallory这里只知道密文;-)

换句话说:我能否确保攻击者无法利用使用散列函数进行摘要计算所带来的可能漏洞获取明文?

变体

这个变体怎么样?我是否可以说它为纯文本提供了信息论的安全性,并且容易受到复杂到2^256的主动攻击?

因此,在这种情况下,我也可以提供一定程度的安全性,以防止已知的明文攻击(即使是计算安全)。

代码语言:javascript
复制
ciphertext = (plaintext XOR OTPKey)
message = (ciphertext || H(ciphertext || K2))

With:
K2 = 32 bytes of random key, NOT correlated with OTPKey

谢谢大家:)

EN

回答 1

Security用户

回答已采纳

发布于 2015-12-05 20:57:26

我能否确保攻击者无法利用使用散列函数进行摘要计算所带来的漏洞获取明文?

我觉得你很安全。我认为唯一的问题可能是OTPKey实现。你不能重复使用同一密钥两次,它必须是真正随机的,并且密钥本身必须是安全的,并且双方都知道。此外,消息的内容必须完全不可预测,否则关键将在理论上容易受到暴力攻击的方法。正因为如此,我将在消息开始时另外实现一个随机值,使其成为XORd,并在任何事情之前使用消息的其余部分。除此之外,我认为所有的引擎都启动了。

更新

关于这一方法:

代码语言:javascript
复制
ciphertext = (plaintext XOR OTPKey)
message = (ciphertext || H(ciphertext || K2))

With:
K2 = 32 bytes of random key, NOT correlated with OTPKey

只要攻击者无法获得K2,这应该是有效的。

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

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

复制
相关文章

相似问题

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