我有两个独立的认证方法A和B,其熵分别为a和b。假设A的折衷没有提供任何关于B的信息,A和B的双因素认证的熵是a+b吗?
发布于 2014-09-21 14:44:04
那得看情况。如果你猜得对但B猜错了,系统会告诉你A是正确的吗?如果是,则为A + B,其平均猜测数为(A + B) / 2。如果你不知道哪一个是错的,熵是A * B,猜测的平均数是A * B / 2。
为了说明原因,请考虑下面的示例: A=4,B=2。如果我们依次尝试这些选项,并知道哪一个是正确的,它将如下所示:
A=0, B=0 A ERR; B ERR
A=1, B=1 A ERR; B ERR
A=2, B=2 A ERR; B OK
A=3, B=2 A ERR; B OK
A=4, B=2 A OK; B OK
(5 attempts)如果我们不知道哪个是正确的,就会这样:
A=0, B=0 ERR
A=1, B=0 ERR
A=2, B=0 ERR
A=3, B=0 ERR
A=4, B=0 ERR
A=5, B=0 ERR
A=6, B=0 ERR
A=7, B=0 ERR
A=8, B=0 ERR
A=9, B=0 ERR
A=0, B=1 ERR
A=1, B=1 ERR
A=2, B=1 ERR
A=3, B=1 ERR
A=4, B=1 ERR
A=5, B=1 ERR
A=6, B=1 ERR
A=7, B=1 ERR
A=8, B=1 ERR
A=9, B=1 ERR
A=0, B=2 ERR
A=1, B=2 ERR
A=2, B=2 ERR
A=3, B=2 ERR
A=4, B=2 OK
(24 attempts)发布于 2014-09-22 04:05:54
我们用比特来度量认证系统的熵。如果一个系统的熵是S位,这就意味着,在探索了2种不同的可能性之后,系统一定是被打破的。
假设方法A的熵是a=30比特,方法B的熵是b=40比特。我们还假设身份验证方法A后面跟着方法B(顺序并不重要)。如果系统通知用户故障是由于方法A或方法B造成的,则系统的熵为max(a,b) = max(30, 40 ) =40位。这是因为攻击者可以先破坏方法A,这需要2^30次试验。破坏A之后,攻击者可以通过探索2^40种可能性(反之亦然)尝试破坏B。由于2^40 >> 2^30,整个系统的熵为2^40。
但是,如果由于方法A或方法B而导致的身份验证失败没有通知攻击者,则系统的总熵为a+b = 30+40 = 70位。这是因为对于方法A的每一种可能性,攻击者都必须尝试方法B的所有可能性,即2^30 * 2^40 = 2^70。
https://security.stackexchange.com/questions/67833
复制相似问题