搞安全和密码的人,总有一个很头疼的问题:当一个方案安全性比较好时,效率就比较低;当提高效率后,安全性又会降低。我们总希望能找到一个平衡点。
信息安全理论中的保密容量(secrecy capacity)告诉我们,在满足安全性条件下,会存在一种编码来保证正常的通信效率。为了把这个解释清楚,接下来,我们将利用二进制擦除信道(binary erasure channel,BEC)来进行解释。
图 二进制擦除窃听信道
正式讲之前,先铺垫一个很常用的概念,叫疑义度(equivocation),这个概念是从窃听者的角度来看的。假定ALICE需要传送的明文为X,窃听者看到的码字为X,在已知X的前提下,明文X的条件商即为疑义度,如下:
密码学认为,已知密文不能获得关于明文的任何信息叫做完美保密(perfect secrecy)。信息论认为已知码字的条件熵与明文熵相等,则为完美保密,如下:
现在来看一个窃听模型。假定ALICE-BOB的信道是无错的,但窃听信道是二进制擦除信道,擦除的概率为。
一. 假如ALICE不使用任何信道编码算法
如果ALICE想向BOB传递一个比特,很明显EVE只有在信道未擦除时,才能获得这个比特。也就是EVE正确获得这个比特的概率是,那么刚才谈到的条件熵该怎么算呢?
对于一个离散的随机变量,其概率分布为,熵(或者叫香农熵)计算如下:
信息论安全中的对数底数都为2,所以,其实香农熵的单位是比特。简单理解就是负概率乘以概率的对数值,再相加。
要想计算条件熵,得先求联合熵,如下:
最后就是条件熵的计算公式了:
对窃听者而言,疑义度的本质就是求条件熵。我们来实践下。
假定消息M为均匀分布:
消息M | 0 | 1 |
概率 |
消息M的熵为:
也就是原始消息有1比特的熵。
窃听者收到码字的分布为:
码字X | 0 | 1 | ?(代表擦除) |
概率 |
码字X的熵为:
消息M与码字X的联合分布,如下:
联合分布 | (0,0) | (0,?) | (1,1) | (1,?) |
概率 |
条件熵计算如下:
其实对窃听者而言,不确定的量就是信道会不会把某个比特擦除,直观上也可以得到疑义度为(我们刚才算了这么久的内容居然这么简单直观)。
也就是,如果ALICE不对明文比特进行信道编码,EVE总能获得一些信息,这是我们不想看到的。于是有了“二”。
二. ALICE使用信道编码算法
假设ALICE将明文0或1,编码成一个n长的比特串。当,则为偶数校验比特;当时,则为奇数校验比特(这个就是我们常说的奇偶校验码)。
当BOB通过无错信道收到该码字时,通过观察奇偶校验位,则可以直接恢复出明文比特。
反过来看EVE,对他而言,n个比特擦除的概率互不干扰,擦除的平均值为(这个值很隐晦,与通常的概率论不太一样)。只要其中有一个比特被擦除了,那么EVE就恢复不了明文消息。EVE犯错的概率为:
这个概率将直接反应EVE的不确定度,所以可得如下条件熵:
很明显,当n趋于无穷大时,该值趋近于1。也就是说当码字长度足够大时,可以得到该条件熵与原始信息熵相等,这不就实现了信息论中的完美安全。很遗憾,传输码率为,当n趋近于无穷大是,码率也接近为0了。安全性和效率需要进行取舍。
三. 推广
以上模型中,我们是假设EVE为BEC信道,BOB为完美无错信道,推导出的信道编码结论。实际上,也可以让BOB为BEC信道,但是要求BOB出错的概率小于EVE出错的概率,也就是通常所说的窃听信道质量要差一些。在这种情况下,借助信道编码理论,BOB在恢复原始明文信息时,仍然会具有一些优势。当然,目前讨论的完美安全都是渐近性的(n趋近于无穷大)。