1、电子现金的概念n支票和信用卡减少了现金流量的数额,但留下了审计线索。n电子现金n匿名性,不可追踪。n无法复制操作,如购买,转账或修改等数字现金 vs 信用卡 匿名性鉴别性在线或离线 在线钱存储在数字钱包里钱存在银行关键属性n安全性 n匿名性n便利性n可重用性 n易操作性 在线模型n结构概述 Deposit CoinsBankUserMerchantWithdraw CoinsPaymentLink with other banks在线模型的优缺点n优点n提供完全匿名和不可追踪的数字现金。n没有双重消费的问题。n不需要额外的安全硬件的支持,成本低。n缺点n商人和银行之间的通信开销大n庞大的数据库
2、交易记录。n难以实现银行和服务器之间的同步。n不重复使用货币 离线模型n结构概述Bank MerchantUserTemper-resistant deviceOthersT.R.D.离线模型的优缺点n优点n离线n完全匿名n银行可以检测到双重消费 n交易时,银行不需要与数据库同步。n货币可以重复使用n减少了数据库交易记录的规模。n缺点n可能不会立即防止双重消费 n成本高可追踪的数字签名 mmessage m=amount,serial no(m)dd is secret key of the Bankspend (m)dsend msend (m)dverify (m)dCustomerBan
3、kMerchant支付支付提款提款存款存款q 符号SKB:银行私钥PKB:银行公钥MSK :消息M和使用密钥SK签署的签名q 首次尝试协议 取款协议取款协议1.顾客告诉银行她想取$10.2.银行返回一个$10的账单,格式如下:I am a$10 bill,#4527SKB 并且从客户账户上减去$10.3.顾客检查签名,如果是有效的接受账单.可追踪的数字签名支付协议支付协议1.顾客将账单付给商户.2.商户检查签名,如果是有效的,接受该账单。存款协议存款协议1.商户将账单付给银行2.世界银行检查签名,如果是有效的,存到商户的账户q 问题-复制,两次消费-匿名性:银行知道用户所对应的序列号,因此银行
4、可以知道用户花费情况可追踪的数字签名盲签名n添加盲因子 bnrd=(mbe)d n银行可以保存记录 rn去掉盲因子n(mbe)d=(m)dbednb-1 mdnr=(m)be使用盲签名构造数字现金系统优点n不可追踪n不可伪造缺点n签名者无法确定签署的内容n数字现金因为只能使用一次,为防止多次花费,银行需要维持花费的所有现金的历史数据库,该数据库会无限增大电子现金协议1 nAlice 准备了 100个匿名汇票,每一张1000美元nAlice 把一张汇票和一张复写纸放在一个信封,然后她把这100个信封发给银行n银行打开99个信封并确认每一个都是1000美元的汇票n银行签署余下的一张未开启信封,签名
5、穿过复写纸写到汇票上,银行将这封签过名且未开启的信封返回给 Alice,并从她的帐户扣除1000元nAlice打开信封,将汇票给商户n商户检查银行的签名,以确定汇票的合法性 n商户汇票给银行n银行验证汇票后将1000美元存到商家的帐户 电子现金协议2n前协议存在两次消费的问题.n协议21.Alice 准备了100个匿名汇票,每一张1000美元,每张汇票包含一个不同、随机且唯一字符串2-7 步骤和协议1相同8.银行验证其签名并检查其数据库,以确保具有相同的独特字符串的汇票先前尚未保存。如果不在数据库中,将1000美元存到商户的账户,并将该字符串记录在数据库中9.如果以前存入,银行不接受汇票 电子
6、现金协议3-不可追踪的电子现金协议n构造 Random Serial Numberm1Random Serial Number,mkm1=(,amount,serial number)mk=(,amount,serial number)不可追踪的电子现金 n盲因子:b1e,bken盲化:m1b1e,mk bkem1b1emkbke,Bankn发送到银行,让银行签名 不可追踪的电子现金 n银行选择 k 1检查 n顾客给了所有的盲因子除了第i个n银行检查它们都是正确的 i不可追踪的电子现金 n银行签署了剩下的这个并将(mibei)d=midbi返回。CustomerSerial non客户去盲使用
7、 bi-1 midUserSignerm1 Signature on(The signers signature on(m1#m2)#m2)Message=(m1#m2)All of the signatures with the same m2 are indistinguishable from the signers point of view.部分盲签名部分盲签名n利用面值解决了剖分选择效率低的缺点n利用有效期缓解了数据库无限增长的缺点n 用户随机选择一个盲因子 r Zn*使用 =re(a)m(mod n)盲化消息 m,然后将 发送给签名者.n 签名者使得 te(a)=(mod n)并
8、发送 t 给用户.n 用户计算 s=r-1t(mod n).n(s,a)是签名者对明文签名消息 m签名.要验证签名(s,a),我们可以检查是否 se(a)m(mod n).电子现金协议4-Abe-Fujisaki部分盲签名数字现金和犯罪 看Alice如何完成如此完美的犯罪1.Alice 绑架一个婴儿2.Alice 准备了10,000个匿名汇票,每一张1000美元3.Alice 盲化汇票使用盲签名协议。然后将它们发给有关当局,并威胁他们,若不满足以下要求他就会杀了孩子:a)银行签署这10,000张汇票 b)在报纸发布的结果4.当局遵守5.Alice买了张报纸,去盲,然后消费.当局没有方法来追踪她
9、的汇票 6.Alice释放婴儿 CriminalPayerBank 发送已盲化的消息 转发盲化消息 返回盲化的电子现金 去盲去盲 存入电子现金匿名信道匿名信道Unlinkable发布已盲化的电子现金 勒索BankCustomer ACustomer B返回已盲化的电子现金 转发电子现金 存入电子现金Unlinkable去盲去盲洗钱n为了防止不可关联的滥用为了防止不可关联的滥用n洗钱 n安全地获得赎金 n法官保存关联信息法官保存关联信息 n对签名者来说是不可关联的 n必要时法官可以揭示关联 公平盲签名UserSignerSigning protocolJudgeUnlinkableMessage
10、-signature pairView of protocolType 1Type 2Type I:The judge receives the signers protocol view.The judge is then able to find out the contents of the digital data.Type II:The judge receives the digital data-digital signature pair.The judge is then able to identify the sender of the digital data.电子现金
11、协议 5-公平盲签名RequesterJudgeSignermessage-signature pairsigning recordsunlinkablelinkablesigning protocol属主追踪(由出示的签名追踪属主ID)现金属主现金追踪(由盲化信息追踪现金m)属主现金一个公平盲签名模型一个公平盲签名模型符号:p,q:两个大素数n:p*qe,d:e*d=1(mod(p-1)(q-1)(e,n):签名者的公钥 d:签名者的私钥 k:安全参数 ID:会话标识 H():单向散列函数 EJ():公钥密码体制,法官的公钥j电子现金协议 5-公平盲签名Signerrandomly choo
12、se a subsetW 1,2,2k of size k for every i W check mi?=rie H(ui|EJ(ID|i)(mod n)Requesterfor i=1,2k randomly choose ri and strings i,i ui=EJ(m|i)vi=EJ(ID|i)mi=rie H(ui|vi)(mod n)for all i W)(mod)(nmbdWiimi|i=1,2,2kWri,ui,i|i Wb)(mod)(nrbsWiinZ电子现金协议 5-公平盲签名验证阶段n请求者得到消息签名对:n(m,s,i,vi|i W)n任何人都可以验证消息的签名
13、的有效性。)(mod)|)|(nvmEHsWiiiJe现金追踪现金追踪Coin tracing:如果一个可疑者支取现金,该现金:如果一个可疑者支取现金,该现金可被撤销匿名并在存款时识别出。可被撤销匿名并在存款时识别出。(ri,ui,i)追踪出m,对ui解密属主追踪属主追踪Owner tracing:如果一个可疑者存款,该现金可:如果一个可疑者存款,该现金可被撤销匿名并揭示出属主。被撤销匿名并揭示出属主。(m,s,i,vi)追踪出ID,对Vi解密如何使它离线 使用秘密分割的电子现金协议 n一种方法,可以将用户ID分成n个部分 n每一个部分是没有用的,但结合时会显示该用户ID n每一个用户ID是一
14、次随机数R的异或举例n用户 ID=2510,IL=1500:n2510 XOR 1500=3090n用户 ID现在可以分为 2 个部分:IL=1500,IR=3090n每一个部分是没有用的,但结合时会显示该用户ID n1500 XOR 3090=2510n用户 ID:15003090 45456159 58787992 头信息 序列号 交易项目n用户 ID:1500 XOR 3090=25104545 XOR 6159=25105878 XOR 7992=2510用户 ID头信息 序列号 交易项目1.Alice 准备了n 汇票,每一个包括以下内容:总额唯一字符串:X鉴别字符串:I1=(h(I1
15、L),h(I1R).In=(h(InL),h(InR)每一个In 揭示了Alice的身份(名字,地址,).I=IiL IiR.h是一个安全的单向散列函数。电子现金协议6-追踪2次花费2.Alice 盲化(乘以随机数k)所有 n 个汇票并将它们发给银行.3.Bank要求提供任意n-1的随机数 ki s并确认它们都是合格的。银行检查总数、唯一字符串并要求用户出示所有鉴别字符串。4.银行检查汇票。如果合法,签署剩下的这个已盲化的汇票,并从Alice的账户扣除相应的金额。5.Alice 去盲,并将汇票付给商户.6.商户要求Alice随机揭示每个鉴别字符串I 的 IiL或 IiR(商户选择n位选择字符串
16、b1,b2,bn)7.Alice根据bI是0还是1公开I的左半或右半。(发送给商户相应的IiL 或 IiR)8.商户使用h,确认Alice没有欺骗.正在消费n用户 ID:03090 45450587809.商家将汇票和鉴别字符串发给银行。10.银行验证这个签名并检查它的数据以确信有相同唯一字符串的汇票先前没有被存过。如果没有,银行把这笔钱划到商人的帐上。银行在它的数据库中记下这个唯一字符串和所有识别信息。11.如果这个唯一字符串在数据库中,银行就拒收汇票。接着,它把汇票上的鉴别字符串同它数据库中存的相比较。如果相同,银行知道是商人复制了汇票。12.如果不同,银行知道是买汇票的人影印了它。由于接
17、收这张汇票的第二个商家交给用户的选择字符串是不同的,银行找出一个比特位,在这个比特位上,一个商人让用户公开了左半,而另一个商人让用户公开了右半。银行异或这两半以揭露用户的身份。n随机选择两个字符串将是相同的机率1/2n n该协议不能保证Alice不欺骗 n世界银行不知道消费者的身份,除非他或她复制了汇票nAlice无法阻止她的身份被揭露,如果她欺骗 n可以尝试使用别人的名字。这种情况的机率是1/n协议4(续)n商户可以欺骗吗?n不,银行会发现重复使用的选择器字符串 n甚至在Alice和商人勾结的情况下也不能欺骗银行。引文银行签署了带有唯一性的字符串汇票 n银行可以欺骗吗?n银行从汇票看不出来谁
18、是买方 n银行和商家合作,也不能找出谁是爱丽丝 nEve可以欺骗 n窃听Alice和商人的通信 n商人之前去银行,并存入数字现金n银行接受它 n虽然错误,银行确定商人为骗子n如果Eve偷了并在Alice花了Alice的现金,Alice将被确定为骗子 n事后追踪,非实时监测n不能防止失窃现金的滥用可分电子现金n如果你买的东西 4.99,而你有 5,你该怎么办?n是不是每一个硬币都有一个“文件”4221111211211数字现金系统的安全需求n安全独立性n安全性n不可复制和重用n隐私(不可追踪)n离线支付n可传递性n不可关联性(可分)n以前的协议满足性能1,2,3和4。有一个协议满足所有性质Questions?