Skip to content

定义Definition

单向函数的硬核谓词

Hard-core predicate · Hard-core bit

区分整份输入难反演与某一位难预测,定义带公开像的硬核谓词,并证明单向置换加一枚硬核位得到长度加一生成器。

形式陈述 ​

以 n 为安全参数,设 fn:{0,1}k(n)→{0,1}ℓ(n) 与 bn:{0,1}k(n)→{0,1} 均可由统一确定性算法在多项式时间内计算,输入、输出长度也可高效计算且多项式有界。按统一概率多项式时间的计算安全模型,称 b 是 f 的硬核谓词,若对每个预测器 P,

PrX←Uk(n),P[P(1n,fn(X))=bn(X)]≤12+negl(n).

概率包含均匀输入和预测器内部随机性。谓词在看到原输入 X 时容易计算,在只见 f(X) 时难以预测。它保护的是指定分布下的一位信息,不能把定义里的均匀输入随意换成一个低熵或已泄露大部分内容的输入。单向性是后续构造对 f 另加的条件,不是这个预测定义的逻辑后果:例如 fn(x)=0、bn(x)=x1、k(n)≥1 时,公开像不含任何信息,预测成功率至多一半,但任意输入都是该常值函数的有效原像。[1]

单向性只要求从 f(X) 难以找出某个有效原像;它并未说 X 的每一位都隐藏。硬核谓词正好补上“至少有一个可用而难预测的比特”这一结构。

直觉

把一份完整答案找回来,与回答其中一个简单问题,难度可能差得很远。一个单向函数可以把输入的第一位明文写在输出里,只把其余部分做困难变换。攻击者看懂第一位,并没有因此恢复整份输入。

硬核谓词要求某个特定二元问题连偏向哪边都难判断。它的基线是 1/2,所以若谓词在均匀输入下总为零,就绝不可能是硬核位:不看公开像也能完美预测。

例子与边界

单向函数可以泄露坐标 ​

假设 g 是一个单向函数,定义

f(a,x)=(a,g(x)),a∈{0,1}.

若能有效反演 f,给定 g(x) 后随机选 a、调用反演器,再丢掉返回的首位,就能找到 g(x) 的有效原像。因此 f 仍单向。

但谓词 b(a,x)=a 明显不是硬核位,因为输出第一位已直接给出它。这个例子没有改变“反演可返回任意原像”的定义:攻击者仍需恢复足以通过 g 验证的尾部。

硬核性等价于“真实位与公平位难区分” ​

考虑两个联合分布

(f(X),b(X))与(f(X),U1),

其中 U1 独立。若一个预测器有优势,检查其预测是否等于最后一位即可区分它们。

反向固定一个统一判别器 D,先在其带符号接受概率差 δ(n)>0 的长度上计算。给定 (1n,y=fn(X)),随机选 u∈{0,1},若 D(1n,y,u)=1 就猜 u,否则猜 1−u。条件于 y,bn(X) 的二选一计算表明,预测优势恰为 δ(n)。另一台固定预测器把所有猜测取反,优势为 −δ(n)。若 |δ(n)| 不可忽略,则在达到某个逆多项式下界的无穷多个长度中,至少一种符号出现无穷多次,对应的固定预测器便违反硬核性。无须逐个长度有效判断差值符号,也不需知道 X。

从单向置换得到长度加一的生成器 ​

进一步取 k(n)=n,假设 fn 是 {0,1}n 上的单向置换,且 b 为其硬核谓词。定义

G(x)=f(x)‖b(x).

硬核性说明它与 (f(Un),U1) 不可区分。置换把均匀分布送到均匀分布,所以后一分布恰好是 Un+1。这就得到 n→n+1 的伪随机生成器。

关键不只是 f 单向,还有“均匀输入经 f 后仍均匀”。若普通单向函数输出前总带一位零,即使它有硬核谓词,直接拼接该谓词后的整串仍会被“检查首位是否为零”区分。不能把上述一行构造直接用于任意单向函数。

推论与应用

Goldreich–Levin 定理给出通用入口:若 f 是单向函数,令 X,R 为独立均匀的输入,将函数扩为 F(x,r)=(f(x),r),则随机内积 b(x,r)=⟨x,r⟩mod2 是 F 的硬核谓词。这是对输入进行公开随机查询后的谓词,不是声称原输入的某个固定坐标必然安全。

有了长度加一的安全生成器,伸长放大可以经多项式次状态更新得到长输出。组合证明必须保留公开像、随机输入及辅助位的联合分布;伸长页给出相应的逐轮混合。只证明最后一位的边缘近似公平不够。

参考资料
关系图谱9 个相邻概念 · 2 类关系

拖动节点调整位置。

显示关系

显示:依赖

  1. 前置三跳
  2. 前置二跳
  3. 前置一跳
  4. 当前条目
  5. 后续一跳
  6. 后续二跳
  7. 后续三跳
文字版关系按与当前条目的最短距离分组
类型化关系

使用的工具