安全协议期末复习
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Protocol 协议Security Protocol 安全协议Trusted Third Party 可信第三方Cryptographic protocols 密码协议Key agreement or establishment protocols 密钥建立协议
Entity authentication protocols 认证协议Electronic commerce protocols 电子商务协议
Secure Multiparty Computation 安全多方计算协议
Security Properties 安全属性Confidentiality 机密性Integrity 完整性Authentication 认证性Non-repudiation 不可否认性Fairness 公平性Attacks Against Protocols对安全协议的攻击Cryptographic attacks 密码攻击Passive attacks 被动攻击Active attacks 主动攻击Passive cheaters 内部攻击Active cheaters 外部攻击Dolev-Yao threat model Dolev-Yao攻击者模型
Eavesdropping 窃听Modification 篡改Replay / Preplay 重放Man-in-the-Middle 中间人攻击(预重放)Reflection 反射Denial of Service 拒绝服务Typing Attack 类型攻击Cryptanalysis 密码分析certificate manipulation 证书操作protocol interaction 协议交互Parallel session attack 并行会话攻击secret splitting 秘密分割secret sharing 秘密共享Threshold Cryptography 门限密码Threshold Encryption 门限加密Threshold Signature 门限签名subliminal channels 阈下信道Covert channel 隐蔽信道Side channel 边信道bit commitment 比特承诺fair coin flipping 公平的硬币抛掷oblivious transfer 不经意传输Key Transport Protocols 密钥传输协议
Key Agreement Protocols 密钥协商协议Group key secrecy 群组安全Backward secrecy (Join) 后向安全Forward secrecy (Leave) 前向安全Key Independence 密钥独立Freshness 新鲜性timestamps 时间戳nonce 随机挑战Counters 计数器Online password guessing 在线字典攻击
Offline password guessing 离线字典攻击
Password Protocols 口令协议Deniable Authentication 可否认的认证协议
Authentication with user anonymity 匿名认证匿名认证
Zero-knowledge proof 零知识证明Graph isomorphism 图同构Trust Negotiation 信任协商Digital Credentials 数字证书Blind Signature 盲签名Partially Blind Signatures 部分盲签名
Fair Blind Signatures 公平盲签名Coin tracing 现金追踪Owner tracing 属主追踪batch verification 批验证batch signatures 批签名Proxy Signature 代理签名Group Signatures 群签名Ring signatures 环签名Multisignature 多重签名Non-repudiation protocol 非否认协议Non-repudiation of origin(NRO) 起源否认Non-repudiation of receipt (NRR)传递的否认Inline TTP 内联TTP Online TTP 在线TTP
Offline TTP 离线TTP Fair Exchange Protocols 公平交换协议Electronic Voting 电子选举Digital Cash 数字现金Traceable Signature Protocol 可追踪的数字签名协议
E-AUCTION 电子拍卖Dual Signature Operation 双重签名The Millionaire Problem 百万富翁Dining cryptographers 密码学家晚餐
第一章安全协议概述
协议(protocol):两个或者两个以上的参与者为完成某项特定的任务而采取的一系列步骤。
密码协议(cryptographic protocol)是使用密码学完成某项特定的任务并满足安全需求的协议,又称安全协议(security protocol)。
P1
密码协议的安全性质: P3
机密性:确保信息不暴露给未授权的实体或进程,即信息不会被未授权的第三方所知,非授权读是对机密性的破坏。
完整性:信息不被偶然或者蓄意的删除,修改,伪造,乱序,重放,插入等破坏的特性,非授权写是对完整性的破坏。
非否认性:包括收发双方均不可否认应经发生的事实。
公平性:是电子支付协议的一个重要性质。
目的是保证参加协议的各方在协议执行的任何阶段都处于同等地位,当协议执行后,或者各方得到各自所需的,或者什么也得不到。
协议:就是两个或者两个以上的参与者为完成某项特定的任务而采取的一系列步骤。
P1
可信第三方(Trusted Third Party)(仲裁者)(Trusted Arbitrator):是指在完成协议的过程中,值得信任的第三方,能帮助互不信任的双方完成协议。
P2
内部协议缺陷:协议的可达性存在问题,协议的参与者中至少有一方不能完成所有必需的动作而导致的缺陷。
P10
安全协议中的角色:认证协议:发起者/响应签名协议:签名申请者/签署人/验证人
零知识证明:证明者/验证者电子商务协议:商家/银行/用户
安全属性(security Property):机密性,完整性,认证性,非否认性,新鲜性
Dolev和Yao攻击者模型:认为攻击者具有如下能力:
(1) 可以窃听所有经过网络的消息;
(2) 可以阻止和截获所有经过网络的消息;
(3) 可以存储所获得或自身创造的消息;
(4) 可以根据存储的消息伪造消息,并发送该消息;
(5) 可以作为合法的主体参与协议的运行。
攻击手法:
窃听攻击者获取协议运行中所传输的消息
篡改攻击者更改协议运行中所传输的消息的内容
重放攻击者记录已经获取的消息并在随后的协议运行中发送给相同的或不同的接收者
反射攻击者将消息发回给消息的发送者
拒绝服务攻击者阻止合法用户完成协议P5
安全协议的缺陷(根据安全协议缺陷产生的原因和相应的攻击方法对安全协议进行分类):基本协议缺陷,并行会话缺陷,口令猜测缺陷,陈旧消息缺陷,内部协议缺陷,密码系统缺陷.P9
并行会话缺陷(parallel session flaws):当多个协议实例同时执行时,如果协议对并行会话攻击缺少防范,会导致攻击者通过交换适当的协议消息获得所需的信息。
P9
主动攻击,被动攻击,内部攻击,外部攻击P2
主动攻击:在攻击时改变协议,在协议中引入新消息,修改或者删除消息等,达到欺骗获取
敏感信息,破坏协议等目的。
被动攻击:不影响协议执行的攻击成为被动攻击。
内部攻击:攻击者是系统的合法用户的攻击。
外部攻击:攻击者是外部实体的攻击。
第三章基本的安全协议
秘密分割(Secret split):就是把一个消息分成n块,单独的每一块看起来没有意义但所有的块集合起来就能恢复出原消息。
P34
秘密共享(Secret sharing):是一种将秘密分割存储的密码技术,目的是阻止秘密过于集中,以达到分散风险和容忍入侵的目的,是信息安全和数据保密中的重要手段。
P35
门限秘密共享(Threshold Secret Sharing):P35
方案:
假设Coca-Cola公司的董事会想保护可乐的配方.该公司总裁应该能够在需要时拿到配方,但在紧急的情况下,12位董事会成员中的任意3位就可以揭开配方。
这可以通过一个秘密共享方案实现t = 3 、n = 15,其中3股给总统,1股给其他每个董事会成员。
安全问题:
机密性:抵抗任何不当行为
强健性:对任何可能出现的错误的可靠性
(t, n) 秘密共享(t<n)
秘密K 被拆分为n 个份额的共享秘密
利用任意t(2≤t≤n)个或更多个共享份额就可以恢复秘密K
任何m –1或更少的共享份额是不能得到关于秘密SK的任何有用信息
强健性:暴露一个份额或多到m –1个份额都不会危及密钥,且少于m –1个用户不可能共谋得到密钥,同时若一个份额被丢失或损坏,还可恢复密钥
Shamir 秘密共享, Blakley秘密共享
根据t和n的选择,权衡安全性和可靠性。
高t,提供高安全性,低可靠性
低t,提供低安全性,高可靠性
阈值加密方案Threshold Encryption Scheme:一个消息是使用公钥加密;为了解密密文,需要超过阈值的共享份额合作来解密
门限签名方案Threshold Signature Scheme:为了签名,需要超过阈值的共享份额合作来签名;签字可以使用公钥验证
阈下信道:subliminal channels P36隐蔽信道边信道
比特承诺:
比特承诺方案具有两个重要性质:隐蔽性:即接收者不能通过接收的箱子来确定承诺值m;
约束性:发送者不能改变箱子中的承诺值m
构造比特承诺
使用单向函数:哈希函数,公钥加密P39
使用对称密码(Symmetric cryptography)算法的比特承诺:
(1) Bob产生一个随机比特串R,并把它发送给Alice。
(2) Alice生成一个由她想承诺的比特b组成的消息,以及Bob的随机串。
她用某个随机密钥K对它加密,并将结果Ek(R,b)返回给Bob.这个是这
个协议的承诺部分,Bob不能解密消息,因而不知道比特是什么。
当Alice 揭示她的比特的时候,协议继续。
(3) Alice发送密钥给Bob.
(4) Bob解密消息以揭示比特。
他检测他的随机串以证实比特的有效性。
使用单向函数的比特承诺:
(1) Alice产生两个随机比特串,R1和R2。
(2) Alice产生消息(R1,R2,b),该消息由她的随机串和她希望承诺的比特组成。
(3) Alice计算消息的单向函数值H(R1,R2,b),将结果以及其中一个随机串发送给BoB.当Alice要出示她的比特的时候,协议继续。
(4) Alice将原消息(R1,R2,b)发给Bob。
(5) Bob计算消息的单向函数值,并将该值及R1与第(3)步收到的值及随机串比较。
如匹配,则比特有效。
公平的硬币抛掷fair coin flipping P41
(1) Bob产生一个随机位串R,把它发送给Alice.
(2) Alice抛币产生一个结果b,她用某个密钥K对它们加密,并把结果Ek(R,b)送回给Bob.
(3) Bob猜测Alice的抛币结果。
(4) Bob解密消息来看结果,他检查他的随机串以证实该消息的有效性。
不经意传输oblivious transfer P45
在这个协议中,一方Alice掌握某个秘密信息s,另一方Bob不知道这个信息,协议结束后Bob以1/2的概率获得信息s,但是Alice不知道Bob是否得到了s。
一般而言,不经意传输协议满足如下三条性质:
(1)正确性:只要A,B双方遵守协议,那么协议结束后接收方Bob将得到他想要的信息。
(2)发送方Alice的保密性:协议结束后,发送方Bob除了得到他想要的信息以外他得不到任何多余信息。
(3)接收方Bob的保密性:协议结束后,发送方Alice不知道Bob的选择。
第四章认证与密钥建立协议
密钥传输协议概念(Key Transport Protocol)P67
密钥传输是指在协议中一个成员选择会话密钥并安全的传输给其他的一个或者多个成员。
密钥协商协议概念(Key Agreement Protocol)P73两者混合
一个密钥建立技术,它把一个共享的秘密分给两个或更多的成员,任何单个成员都不能预测此共享秘密。
一个安全的群组通信,至少要满足以下5个方面的安全性需求:
(1) 群组安全。
非群组成员无法得到群组通信密钥。
(2) 前向安全。
一个成员离开群组后,他无法再得到新的密钥,从而保证其无法解密离开后的通信数据。
为实现前向安全,在成员离开群组后,必须进行密钥的更新。
(3) 后向安全。
新加入的成员无法得到先前的群密钥,从而保证其无法解密加入前的通信数据。
为实现后向安全,在成员加入群组后,同样也需要进行密钥的更新。
(4) 抵抗合谋攻击。
避免多个群组成员联合起来破解系统(或减少发生的概率)。
(5) 密钥独立。
一个通信密钥的泄露,不会导致其它密钥的泄露P86
保证新鲜性(Freshness)的几种方法:新鲜性的保证可以有效的抵抗重放攻击。
时间戳:消息发送者在消息种加入消息发送的时间。
接受者根据时间戳的时间和本地时间的对比确定消息的新鲜性。
难度在于使用时间戳必须保证时钟的同步性。
随机挑战(nonce):消息的接收者先产生一个随机数发送给消息的发送者然后根据随后收到的消息中包含的随机数验证消息是否新鲜。
必须注意的是产生随机数的方式,即产生的随机数的质量计数器:消息发送者和接收者各自拥有同步计数器,计数器的值随消息的发送增加。
难度在于计数器的管理,计数器必须存储所有参与者的状态。
混合方法:将计数器和时间戳结合使用。
在线字典攻击:入侵者重复地从口令字典中选取口令并用它来假冒合法用户。
如果假冒失败了,入侵者就把这个口令从口令字典中删除,再用其它的口令进行尝试。
在实践中,防止这种在线攻击的标准方法是限制口令到期之前允许用户登录失败的次数,或降低允许用户登录的频率。
离线字典攻击:入侵者记录过去的通信,然后遍历口令字典,查找与所记录的通信相一致的口令。
如果发现了这样的口令,那么入侵者就能够断定这是某个用户的口令。
口令协议:
可否认的认证协议Deniable Authentication P84
在可否认认证协议中,接收方Bob能够认证收到的消息M是由预期发送方Alice发送的,并在传输中无差错出现,事后,Alice能够否认曾向Bob发送过M,假设信道被敌手控制,敌手能够记录所有的通信。
Bob能够使用他的私钥验证被认证的消息,但他没能力向第三方证明该消息是由Alice生成的,因此第三方无法区分该认证消息是由谁产生的。
基于身份的可否认认证协议有如下的安全特性:(1)认证性,预期的影响方能够确信消息源。
(2)可否认性,预期的影响方不能向任何第三方证明消息源。
可否认认证协议的目的是接受者能够确认给定消息的来源但不能够向第三方证明消息的来源。
可用于电子商务以保护发送者的隐私。
匿名认证(Anonymous Authentication)
通信匿名认证协议要求通信者的身份不被泄露,这类协议有效保护了参与通信的实体的身份信息,而且外部攻击者是不能知道谁在进行通信的。
通信匿名认证协议通常满足如下安全属性:
(1)用户身份匿名。
匿名性可确保除通信双方外,任何人都不能知道谁在和谁通信。
(2)用户身份前向匿名.如果攻击者攻破了一个或多个实体的长期密钥,攻击者仍然不能获得利用该长期密钥建立会话的用户的身份信息。
(3)不可关联.攻击者不能区分同一个用户的两次不同通信。
第五章零知识证明
零知识证明的概念Zero-knowledge proof:设P表示掌握某些信息,并希望证实这一事实的实体,设V是证明这一事实的实体。
某个协议向V证明P的确掌握某些信息,但V无法推断出这些信息是什么,我们称P实现了最小泄露证明。
如果V除了知道P能够证明某一事实外,不能够得到其他任何知识,我们称P实现了零知识证明,相应的协议称作零知识协议。
P111
平方根零知识证明(Square isomorphism )P114
令N=PQ,P,Q为两个大素数,Y是mod N的一个平方,且gcd(Y,N)=1,注意找到mod N的平方根与分解N师等价的。
Peggy声称他知道Y的一个平方根S,但他不愿意泄露S,Vector想证明Peggy是否真的知道。
解决方案:
(1)Peggy选择两个随机数R1和R2,满足gcd(R1,N)=1,R2=SR1^-1,R1R2=S(mod N)。
Peggy计算X1=R1^2(mod N),X2=R2^2(mod N),并将X1,X2发送给Vector.
(2)Vector检验X1X2=Y(mod N),然后Vector随机选择X1(或X2)让Peggy提供它的一
个平方根,并检验Peggy是否提供的是真的平方根。
(3)重复上面的过程直至Vector相信。
这里,Peggy不知道Y的平方根,虽然他可能知道X1,X2的一个平方根,但不是全部。
第六章选择性泄露协议
信任协商Trust Negotiation广泛应用在电子商务中为使陌生人进行安全交易,必须建立起一定级别的双方信任关系。
信任协商就是陌生的交易双方通过泄漏一系列权威秘密建立起信任关系。
泄露:
⏹如果Bob需要Alice出示姓名和Email,Alice需要发送tv1、tv2、node2。
Bob通过下面
几个步骤进行判别(符号“||”表示前后两个值作连接):
⏹ 1.计算leaf1’ = hash ( tv1 ),leaf2’ = hash ( tv2),node1’ = hash ( leaf1’ || leaf2’ )。
⏹ 2.计算root’ = hash ( node1’ || node2)。
⏹ 3.比较root’ 和root,确认无误后,再通过特殊标志“*”从tv1、tv2中取得所需信息。
使用Merkle树解决证书中数据存储量大问题
第七章数字签名变种
盲签名Blind signature P140
指签名人只是完成对文件的签名工作,并不了解所签文件的内容。
与普通签名相比有两个显著特点:(1)签名者不知道所签文件的内容。
(2)在签名呗签名申请者泄露后,签名者不能追踪签名。
部分盲签名Partially Blind SignaturesP141
待签名的消息包括签名申请者提交的代签消息和签名者提供的“身份消息”。
这样不仅保证了待签消息对签名者的盲性,而且阻止了签名申请者提供非法消息而滥用签名,进而有效地保护了签名者的合法权益。
公平盲签名Fair Blind SignaturesP142
公平盲签名比盲签名增加了一个特性,即建立一个可信中心,通过可信中心的授权,签名者可追踪签名。
它可以在需要的时候让一个可信任第三方发布信息,允许签名人把消息-签名对和他签名时的具体内容联系起来,揭开签名,实现对签名申请者的追踪。
现金追踪Coin tracing:如果一个可疑者支取现金,该现金可被撤销匿名并在存款时识别出。
属主追踪Owner tracing:如果一个可疑者存款,该现金可被撤销匿名并揭示出属主。
批验证batch verification:批验证签名协议基本思想是将多个签名由同一个签名者签发的放
在一起,形成一个“批”,对该批进行验证,如果该批通过验证,则接受该批中的所有签名,否则,拒绝批中所有签名。
P149
批签名batch signatures:批签名是指能够用一次签名动作,完成对若干个不同的消息的签名。
并且以后可以对每一条消息独立的进行认证。
这类签名算法提高了对批量文件签名的效率。
P150
基于多难题的数字签名:P160
构造基于多个难题的数字签名,只要其中一个难题未被破解,方案就是安全的。
代理签名(Proxy signature):原始签名者将签名权委派给代理签名者,替自己行使签名权(发布代理密钥对)
代理签名者代表原始签名者签名,使用代理密钥对签署消息
接受者验证签名和原始签名者的授权P148
群签名(Group signature):其目标是创建一个系统,环中任何一个成员都可以代表整个环进行签名,而验证者只知道签名来自这个环,但不知道谁才是真正的签名者,并具有以下属性:健全性和完整性;签名者的完美匿名性;无需设置P144
环签名(Ring Signature)P145
其唯一的假设是:所有用户都拥有支持某种标准签名方案的公钥。
为产生环签名,签名人任意选择一个包含他本人在内的用户的集合,运用自己的私钥以及其他用户的公钥对消息进行签名。
对于验证人而言,只能验证签名出自集合中的某个用户,而不知道具体是哪个。
具有以下特点:(1)无需设置。
签名者不需要其他用户的配合就能独立完成签名工作。
(2)签名者的完美匿名性。
对特定的环签名,环中成员都有能力生成该签名,因此签名者具有完美的匿名性。
多重签名(Multisignature)P158
多重签名方案是一种能够实现多个用户对统一消息签名的数字签名方案。
根据签名过程不同,多重数字签名方案可以分为广播多重数字签名方案和有序多重数字签名方案。
第八章非否认协议
非否认协议
非否认协议是为了防止不诚实者否认他们参与了某项事务而拒绝承担相应的责任而设计的协议。
要求:
(1) 确保通信主体不能对通信事件抵赖;
(2) 确保在协议执行的任何阶段,任何通信主体不能获得优于其他主体的好处。
实现第一个:通过使协议通信各方获得可证明通信事件或动作发生过的证据,以防止利益方抵赖;实现第二个:保证协议的公平性。
非否认服务:
非否认服务收集、维护、公布和验证那些与某个事件或动作相关的不可抵赖的证据,并将这些证据用于解决参与通信的双方的争执。
非否认证据:
(1)发送方非否认证据( evidence of origin,EOO ),非否认服务向接收方提供不可抵赖的证据,证明接收到的消息的来源。
(2)接收方非否认证据( evidence of receipt,EOR ),非否认服务向发送方提供不可抵赖的证据,证明接收方已收到了某条信息。
起源否认Non-repudiation of origin(NRO): 防止信息的发送端否认发送消息P163
传递的否认Non-repudiation of receipt (NRR): 防止邮件的收件人拒绝承认收到信息P163 EOO – Evidence of origin for B:证明已经发送过消息
EOR – Evidence of receipt for A:证明已收到消息
内联函Inline TTP:: TTP 参与协议交互过程中每一条消息的传输。
协议中,TTP扮演协议主体之间的中介角色。
协议主体之间不交换任何信息,协议主体之间所交换的消息都通过TTP进行。
此外,TTP直接提供可信第三方的各种服务。
在线协议Online TTP:TTP 参与协议的每一次运行,但并不参与交互过程中每一条消息的传输。
每次需要提供可信第三方的服务时,TTP都直接参与。
离线协议Offline TTP:如果TTP只在协议执行出现非正常情况或者网络出现错误的时候参与协议。
第九章公平交换协议
公平交换协议Fair Exchange Protocols:当一个系统涉及到两个或者多个互不信任的主体,就要考虑满足所有主体的安全性,需要存在相应的安全机制来保证交换顺利进行。
这种安全机制就是公平交换协议P173
第十章安全电子商务协议
电子选举有那些安全的要求Requirements for Voting Protocol:
(1)只有经授权的投票者才能投票;
(2)每个人投票不得超过一次;
(3)没有人能复制其他人的选票;
(4)没有人能修改其他人的选票;
(5)每个投票者都可以保证他的选票在最后的选举计数中被计算在内
(6)任何人都不能确定别人投谁的票
(7)每个人都知道谁投了票,谁没有投。
数字现金Digital Cash:支票和信用卡减少了现金流量的数额,但留下了审计线索。
电子现金
匿名性,不可追踪。
无法复制操作,如购买,转账或修改等P191
数字签名:
完美犯罪(perfect Crime):
看Alice如何完成如此完美的犯罪
Alice 绑架一个婴儿
Alice 准备了10,000个匿名汇票,每一张1000美元
Alice 盲化汇票使用盲签名协议。
然后将它们发给有关当局,并威胁他们,若不满足以下要求他就会杀了孩子:
银行签署这10,000张汇票
在报纸发布的结果
当局遵守
Alice买了张报纸, 去盲, 然后消费. 当局没有方法来追踪她的汇票
Alice释放婴儿
电子拍卖(Electronic auction):英式,荷兰式
拍卖上的安全需求(Electronic auction’s security needs):
安全的电子拍卖系统必需提供公平竞争的机制,中标者的胜出必须无异议,必须能杜绝串通和中标者违约等行为。
一般一个安全的电子拍卖系统必须满足下列安全需求:
(1) 投标者的匿名性:即使在拍卖结果公开后,包括可信权威机构的任何人都不能获知投标者失败人的身份及其投标出价;
(2) 投标价保密性:必须保证投标者的标价保密;
(3) 不可伪造性:投标者的投标不能被伪造;
(4) 不可抵赖性:投标者投标后不能否认其投标,并且保证最后的买家一定能付款;
(5) 可证实性:可公开证明最后中标者的合法性;
(6) 公平性:投标者的地位平等,有办法解决争议和违约
双重签名(Dual Signature Operation)
概念:连接不同接收者的两个消息
订购信息(Order Information OI):客户给商家
支付信息(Payment Information PI):客户给银行
目标:限制消息只发送给需要知道的一方
商家不需要的信用卡号
银行不需要客户的订购信息
使这些信息相互隔离,保证客户隐私安全
此连接必须保证支付信息与订单的对应
数字信封(Digital envelope)
数字信封是公钥密码体制在实际中的一个应用,是用加密技术来保证只有规定的特定收信人才能阅读通信的内容。
在数字信封中,信息发送方采用对称密钥来加密信息内容,然后将此对称密钥用接收方的公开密钥来加密(这部分称数字信封)之后,将它和加密后的信息一起发送给接收方,接收方先用相应的私有密钥打开数字信封,得到对称密钥,然后使用对称密钥解开加密信息。
这种技术的安全性相当高。
数字信封主要包括数字信封打包和数字信封拆解,数字信封打包是使用对方的公钥将加密密钥进行加密的过程,只有对方的私钥才能将加密后的数据(通信密钥)还原;数字信封拆解是使用私钥将加密过的数据解密的过程。
第十一章安全多方协议
安全多方计算协议Secure Multiparty Computation:安全多方计算(Secure Multi-Party Computation,SMPC)是一种协议,在这个协议中,一群人可在一起用一种特殊的方法计算含有许多变量的任何函数。
这一群中的每个人都知道这个函数的值,但除了函数输出的明显东西外,没有人知道关于任何其他成员输入的任何信息
百万富翁协议:
假设问题是Alice知道一个值a,Bob知道一个值b,他们想确定a是否小于b,而且Alice 得不到b的任何信息,Bob也得不到a的任何信息。
假设i和j的取值范围是从1到100,Bob有一个公开密钥和一个私人密钥。
(1) Alice选择一个大随机数x,并用Bob的公开密钥加密:c = E B(x)。
(2) Alice计算c–i,并将结果发送给Bob。
(3) Bob计算下面的100个数:y u = D B(c – i + u),1 ≤ u≤ 100,D B是使用Bob的私人密钥的解密算法。
他选择一个大的随机数p(p的大小应比x稍小一点,Bob不知道x,但Alice能容易地告诉他x的大小),然后计算下面100个数:z u= (y u mod p),1 ≤ u≤ 100然后他对所有u≠ v验证| z u– z v| ≥ 2,并对所有的u验证0 ≤ z u≤ p– 1,如果不成立,Bob 就选择另一个素数并重复试验。
(4) Bob将以下数列发送给Alice:z1,z2,...,z j,z j+1 + 1,z j+2 + 1,...,z100 + 1,p。