视频地址:密码学学术讲座 | Mike Rosulek教授开讲不经意传输及其扩展_哔哩哔哩_bilibili
Base OT
Base-OT,即1-out-of-2 OT协议,即发送方S拥有两个秘密消息 、,接收方拥有秘密选择比特 ,根据接收方输入的秘密比特b,OT协议返回 给接收方,同时应安全性的要求,接收方对 一无所知,发送方对接收方选择的是 还是 也一无所知。
随机OT
随机OT,即发送方的两个消息以及接收方的选择比特都是由OT协议随机生成的。
随机OT可以容易地转换为标准OT。如下图所示,在离线预处理阶段,发送方获得随机OT生成的消息,接收方获得。在线阶段,发送方发送消息,接收方发送选择比特c,获得消息。发送方利用随机OT生成的消息来加密发送方的消息,并将加密后的消息发送给接收方。现假设接收方从随机OT获得的。若,则发送方发送的消息为,Bob本地计算,即获得了消息,并且对消息一无所知;若,按照上述步骤可以发现,接收方无法获得正确的消息,除非发送方交换加密信息,用加密,加密。
为解决上述出现的问题,Beaver提出让接收方告诉发送方是否相等,即发送,然后发送方计算 并发送给接收方,接收方计算。其正确性容易验证,且是安全的,发送方从中无法获得和的具体信息。
IKNP-OTE
在实际的应用场景中,会多次调用Base OT,为解决其低效性,提出了OT扩展协议,即采用少量的Base OT和对称密钥结合生成大量OT实例。
现有Alice和Bob两个参与方,他们想生成 n 个OT。其中,Bob拥有一个长为m的比特串 r ,该比特串中的m个比特是每次执行 OT 时的选择比特。Bob将这个比特串 r 排成一列向量,然后将其进行重复编码,即将向量中的每一个元素按行进行重复,(每一行要么全是0,要么全是1 ) 形成一个 的矩阵R。Bob对该矩阵进行秘密分享,生成两个秘密份额矩阵。若矩阵R中的某一行全是0,则生成的两个矩阵中对应的行的元素相同;若全是1,则相反。Alice随机生成一个长为 的比特串S。
然后双方交换身份,即Alice变为接收方,Bob为发送方,执行 次Base OT。对于第 i 次的Base OT,Bob输入两个矩阵的第 i 列元素,Alice选择 作为选择比特选择两列元素中的某一列。直至执行完 次,Alice获得矩阵Q。
在上图中,可以看出当时,Alice获得的矩阵Q中的某一行 与 Bob的秘密分额矩阵中对应行 的元素相同,而当时,Alice获得的矩阵Q中的某一行 是Bob的秘密分额矩阵中对应行 与S异或得到的结果,即
也可以写成
因此,最终Alice获得了与,根据的不同表示为下图所示的形式。左边表格即可以为Alice所拥有的秘密消息,右边表格为Bob所获得的消息。
由于Alice的每一行都利用了S,为保证其安全性,Alice和Bob采用了随机预言机模型H,如下图所示。
以上即为IKNP协议,它是半诚实安全的。实际上,在上述协议中,Alice可以是恶意的,但是Bob只能是半诚实的。
KOS-恶意安全的IKNP
而当Bob是恶意敌手时,IKNP就会出问题,因此提出了KOS协议,即恶意安全的IKNP协议。
如上图所示, 当Bob在生成选择比特矩阵时,若篡改了其中某一比特。当且仅当Alice的比特串s中的第二个比特时,Alice和Bob在第二行就会有一个比特不一致。 若Alice对该行进行Hash运算并在其他大型协议中使用这些结果而被Bob检测到,则Bob将能得到s的一个比特信息。然后Bob通过使用类似地方法, 在每列的不同位置篡改一个比特,便可以获得Alice秘密信息s。
Keller、Orsini、Scholl 在2015年提出一致性检查(Consistency check)技术可以解决这一问题。
由,可以得出。
由此,Alice选取随机行数组成的集合C发给Bob,然后Bob计算并发送给Alice,因为Alice有s和,他可以计算,并验证是否成立。
KK13
在IKNP协议中,Bob拥有一个选择比特串 r 并将其扩展成为了一个矩阵,在该矩阵中每一行要么全是0,要么全是1。KK13中指出,这是一种简单的重复编码,若将其视为一种纠错码,可以采用不同的纠错码将其进行推广。
因此,现Bob有一选择比特串 r ,设,用来对Bob的选择比特 的重复码进行编码,即编码后的矩阵中第i行元素为 ,然后对编码的矩阵进行秘密分享,设Bob的秘密分享矩阵为,其中,矩阵的元素表示为。
IKNP等式可以推广为 。
执行完Base OT后,对于每一行,Bob获得了 ,Alice获得了。
从Bob视角来看,Alice的两个值可以改写为
当C是一个线性码时,,因此Alice的两个值可以进一步写为
,因此Alice的两个值为。
最后,再使用随机预言机破坏对于s重用的关联性。
以下是对IKNP的一些推广。