自从第三章做到“不求甚解”之后,看第四章的速度飞快了起来,也可能是因为知识的积累,使得后面的东西容易理解了起来。不管怎么样,随便记录一些觉得值得记录的东西吧。

概念

  • 时间标记服务
    1. 数据本身必须有时间标记,而不用考虑它所用的物理媒介
    2. 改变文件的1个位而文件却没有明显变化是不可能的
    3. 不可能用不同于“当前日期和时间”的“日期和时间”来标记文件
  • 仲裁解决方法
  • 改进的仲裁解决方法
  • 链接协议(将前后时间标记链接起来,可询问前后去确认该时间标记确实有效)
  • 分布式协议(区块链所用的方法?)
  • 进一步的工作:在纽约时报上发表时间标记的散列值
  • 阈下信道(subliminal channel):在监视的情况下的一个秘密通信信道,消息本身不包含秘密消息。
  • 阈下信道的应用:受威胁时发送情报、公司签名文件使其在整个文档有效期内被跟踪(阿里程序员截图被发现的原理?)、政府可以“标记”数字货币(未来的国家发行的比特币?)、恶意的签名程序可能泄露其签名中的秘密消息等。
  • 杜绝阈下签名方案(subliminal-free signature scheme)
  • 不可抵赖的数字签名(undeniable signature)
  • 受托不可抵赖签名(entrusted undeniable signature)
  • 指定的确认者签名(designated confirmer signature)
  • 代理签名(proxy signature)

    1. 可区别性(distinguishability):任何人都能区别代理和正常签名
    2. 不可伪造性(unforgeability):只有原始签名者和指定的代理才能进行有效签名
    3. 代理签名者的不符合性(proxy signer's deviation):代理签名者必须创建一个能检测代理签名的有效代理签名???
    4. 可验证性(verifiability):验证者能相信签名者认同了这份签名消息
    5. 可识别性(identifiability):原始签名者能从代理签名中识别代理签名者的身份
    6. 不可抵赖性(undeniability):代理签名者不能否认他创建的且被认可的代理签名
  • 团体签名(group signature)
    1. 只有该团体内的成员能对消息签名
    2. 签名的接收者能够证实消息是该团体的有效签名
    3. 签名的接收者不能决定是该团体内哪一个成员的签名
    4. 出现争议时,签名能够被“打开”,以揭示签名者的身份
    5. 相对于代理签名具有更高的可识别性的形式
  • 具有可信仲裁者的团体签名(n个成员 * m个密钥对)
  • 失败-终止数字签名(fail-stop digital signature)
  • 加密数据计算(computing with encrypted data) == 对先知隐藏信息(hiding information from an oracle): oracle是先知?甲骨文??
  • 位承诺
  • 使用对称密码系统的位承诺
  • 使用单向函数的位承诺?
  • 使用伪随机序列发生器的位承诺?
  • 模糊点(blob)
  • 公平的硬币抛掷

    1. Alice必须在Bob猜测之前抛硬币
    2. 在听到Bob的猜测后,Alice不能再抛币
    3. Bob在猜测之前不能知道硬币是怎么落地的
  • 使用单向函数的抛币协议
  • 使用公开密钥密码系统的抛币协议
  • 抛币入井协议(flipping coin into a well)
  • 智力扑克
  • 三方智力扑克

    1. Alice、Bob和Carol都产生一个公开密钥/私人密钥对
    2. Alice产生52个消息,每个代表一副牌中的一张。这些消息应包含一些唯一的随机串,以便她在以后验证它们在协议中的真实性。Alice用她的公开密钥加密所有这些消息,并将它们发送给Bob:Ea(Mn)
    3. Bob不能阅读任何消息(没有Alice的私人密钥),他随机选择5张牌,用他的公开密钥加密,并把它们送回给Alice:Eb(Ea(Mn))
    4. Bob将剩下的47张牌送给Carol: Ea(Mn)
    5. Carol不能阅读任何消息,也随机选5个消息,用她的公开密钥加密,并把它们送给Alice:Ec(Ea(Mn))
    6. Alice也不能阅读回送给她的消息(同样没有Bob和Carol的私人密钥),她用她的私人密钥对它们(Bob和Carol送回的各5张牌)解密,然后回送给Bob和Carol:Da(Eb(Ea(Mn)))=Eb(Mn),Da(Ec(Ea(Mn)))=Ec(Mn)
    7. Bob和Carol用他们的密钥解密并获得他们的牌:Db(Eb(Mn))=Mn,Dc(Ec(Mn))=Mn
    8. Carol从余下的42张中随机抽取5张,送回给Alice:Ea(Mn),即由其他人挑选Alice的牌
    9. Alice用她的私人密钥解密消息获得她的牌:Da(Ea(Mn))=Mn
    10. 在游戏结束时,Alice、Bob和Carol都出示他们的牌和他们的密钥,以便每个人都确信没有人作弊
  • 对扑克协议的攻击
    1. 如果使用RSA算法,扑克协议会泄露少量的消息
    2. 具体来说,如果牌的二进制表示的是二次方程的残数??,那么牌的加密也为二次方程的残数。
    3. 这个特性可用来标记少数牌,如红桃A
  • 匿名密钥分配
    1. KDC?
  • 单向累加器(one-way accumulator)
    1. 可交换
    2. 类似单向函数
    3. 用任何顺序对成员数据库进行散列运算都得到相同的值是可能的
    4. 把新成员加入散列值中得到新的散列,也与顺序无关
  • 秘密的“全”或“无”泄露(All-or-Nothing Disclosure Of Secret, ANDOS)
  • 密钥托管

    1. 托管加密标准(Escrowed Encryption Standard)
  • 公平密码系统(fair cryptosystem)
  • 防故障密钥托管(failsafe key escrowing)

轶事

  • 密钥托管的政治:个人隐私与社会安全的平衡

问题

如“概念”一栏,问题汇总如下:

  • 二次方程的残数是什么?
  • RSA溢出消息?
  • KDC?(已解决:Key Distribution Center密匙分配中心)