原文教材 与 参考资料:
Boneh Dan , Shoup Victor . A Graduate Course in Applied Cryptography[J].
该书项目地址(可以免费获取):http://toc.cryptobook.us/
博客为对该书的学习笔记,并非原创知识,帮助理解,整理思路。
OPRF Protocol:
Oblivious PRFs 不经意伪随机函数, 支持系统中的两个参与者, 其中一个保管部分秘密值称为该随机函数的秘钥k, 另一个参与者保管一个随机输入x, 最终由保管输入的参与方生成随机数,并且该两方在多次运行该协议后不能学习到对方的秘密值,协议描述如下图:
OPRF1 protocol:
正确性描述如下:
发送者不能从v中学习到任何关于接收者输入的信息,接收者也不会从w中获取到任何发送者k的信息,如果发送者是恶意的其发送一个错误的w, 那么接收者一定获取的是一个错误的值,这就导致了不安全场景,所以OPRF1协议是一个在恶意发送者下部分安全的协议。如果接收者是一个恶意的,那么要求其至少在l次交互中不能学习到任何关于随机数生成内容关于k的信息。我们可以使用下述的一个实验(假设)来刻画接收者的安全情况。
One more Diffie-Hellman (1MDH) assumption
非常容易可以看到这个1MDH隐含实现了CDH假设,并且也是实现了上述OPRF1协议一个恶意的接收者企图学习F(k,·)的内容。注意:在OPRF1中,我们要让发送者能够确认其收到的信息确实来源于一个群,是一个合法的群元素。
OPRF2 protocol:
进一步,我们可以修改上述OPRF1协议使其在恶意参与者的条件下实现安全性,如果接收者根据发送者的输入计算出了一个错误的结果,那么该结果应该与发送者的视图是完全独立的,即,发送者不能影响最终的计算结果,即使结果是错误的但是不应该被发送者控制。
正确性:
考虑这个协议:
1.发送者恶意,接收者诚实:最终由于发送者不知道p的信息,所以其看到的最终结果从发送者的视图看来依然是一个随机的元素。
2.发送者诚实,接收者恶意:此种情况和1MDH假设一致。
A simple adaptive OT from an oblivious PRF
那么,现在使用OPRF实现一个适应性的OT协议如下:
原理比较简单,直接使用OPRF协商出的随机数作为密钥即可,协议描述如下: