格密码学中的难题与方案解析
1. 最近向量问题(CVP)分析
可以使用与之前类似的启发式论证来分析最近向量问题(CVP)。给定一个不在格 $L$ 中的向量 $w$,当以 $w$ 为中心、半径为 $r$ 的球体体积等于格 $L$ 的行列式 $\det(L)$ 时,我们预计该球体会包含格 $L$ 中的一个点。并且,当实际距离与格 $L$ 中最近向量的“期望距离”之比减小时,CVP 问题会变得更容易解决。
2. 背包密码系统
整数分解和离散对数问题被认为是困难的,因为目前还没有人找到能在多项式时间内解决它们的算法。整数分解问题的决策形式可以表述为:是否存在小于 $p$ 的 $N$ 的因子?这个问题属于 NP 和另一个复杂度类 co - NP。由于普遍认为 NP 不等于 co - NP,所以人们也认为整数分解不是 NP 完全问题。自然地,一个基于已知为 NP 难问题的密码系统会让人对其安全性更有信心。
2.1 子集和问题
Merkle 和 Hellman 在 20 世纪 70 年代末首次尝试基于一个特定的 NP 完全问题——子集和问题来构建密码系统。子集和问题表述如下:给定一个正整数列表 ${M_1, M_2, \cdots, M_n}$,选择其中一个未知子集并求和得到整数 $S$。给定 $S$,恢复求和得到 $S$ 的子集,或者找到具有相同性质的另一个子集。也可以用另一种方式描述:已知正整数列表 $M = {M_1, M_2, \cdots, M_n}$,选择一个秘密二进制向量 $x = {x_1, x_2, \cdots, x_n}$,其中每个 $x_i$ 取值为 0 或 1。如果 $S = \sum_{i = 1}^{n} x_iM_
超级会员免费看
订阅专栏 解锁全文
825

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



