组合数学、概率与信息论在密码学中的应用
在密码学领域,评估一个加密系统的实用性和安全性时,需要衡量其对各种攻击的抵抗能力。这些攻击包括简单的暴力搜索、通过碰撞或中间相遇算法进行的更快搜索,以及用于计算离散对数、分解整数和在格中寻找短向量的更复杂方法。对这些算法的分析通常需要组合数学、概率论和信息论的工具。
1. 基本计数原则
计数原则是密码学中概率计算的基础。下面通过几个例子来介绍基本计数原则。
- 例子1 :有一个古老的谜题,“当我去圣艾夫斯时,我遇到一个有七个妻子的男人,每个妻子有七个袋子,每个袋子有七只猫,每只猫有七只小猫。小猫、猫、袋子和妻子,有多少人去圣艾夫斯?”答案是只有叙述者一人去圣艾夫斯,其他人都从圣艾夫斯离开。但如果我们换个角度,问叙述者遇到的人和物的总数,答案是$2801 = 1$(男人)$ + 7$(妻子)$ + 7^2$(袋子)$ + 7^3$(猫)$ + 7^4$(小猫)。
- 例子2 :两个学生(爱丽丝和鲍勃)要从20门不同的课程中选课,选课的可能性总数为$2$(人)$\times20$(课程)$ = 40$种。这体现了基本计数原则:如果进行两个实验,一个有$n$种可能结果,另一个有$m$种可能结果,那么进行这两个实验的可能结果总数为$nm$。更一般地,如果进行$k$个独立实验,第$i$个实验有$n_i$种可能结果,那么所有实验的结果总数为$n_1n_2 \cdots n_k$。
- 例子3 :爱丽丝、鲍勃和卡尔三人要选择午餐时间(11:00 am和1:00 pm)和食堂(校园里有五个食堂),选择方式总数为$3$(人)$\time
超级会员免费看
订阅专栏 解锁全文
64

被折叠的 条评论
为什么被折叠?



