《应用密码学》的原文摘录

  • 如果同一个算法既用做加密又用做数字签名,就有可能受到攻击[506]。在这些情况中,数字签名操作是加密操作的逆过程:VX=EX,并且SX=DX。 假设Mallory是持有自己公开密钥和私人密钥的系统合法用户。让我们看看他怎么读Bob的邮件。首先他将Alice在(1)中发送给Bob的消息记录下来,在以后的某个时间,他将那个消息发送给Bob,声称消息是从Mallory来的。Bob认为是从Mallory来的合法消息,于是就用私人密钥解密,然后用Mallory的公开密钥解密来验证Mallory的签名,那么得到的消息纯粹是乱七八糟的消息:EM(DB(EB(DA(M))))=EM(DA(M)) 即使这样,Bob继续执行协议,并且将收据发送给Mallory: EM(DB(EM(DA(M)))) 现在Mallory所要做的就是用他的私人密钥对消息解密,用Bob的公开密钥加密,再用自己的私人密钥解密,并用Alice的公开密钥加密。哇!Mallory就获得了所要的消息M。 506. J.D. Dixon. "Factorizon and Primality Tests." American Mathematical Monthly. v. 91, n. 6 1984, pp. 333-352. (查看原文)
    无心 1赞 2019-09-16 08:13:05
    —— 引自章节:2.7 带加密的数字签名
  • 用完全盲签名协议,Alice能让Bob签署任何东西:“Bob欠Alice100万美元,”“Bob欠Alice的头生子,”“Bob欠Alice一袋软糖,”可能的事远远不止于此。这个协议在许多场合都无用。 然而,有一个办法可以让Bob知道他在签什么,同时仍保持盲签名的有用性质。这个协议的核心是分割选择技术。考虑一个例子,每天很多人进入这个国家,而移民局要确信他们没有走私可卡因。官员可以搜查每一个人,但他们换用了一种概率解决办法。他们检查入境人中的1/10。10个人中有1个人的行李被检查,其余的9个畅通无阻。长期的走私犯会在大多数时间里逍遥法外,但他们有10%的机会被抓住。并且如果法院制度有效,则抓住一次的处罚将远远超出其他9次所得到的。 一组反间谍人员,他们的身份是秘密的,甚至反间谍机构也不知道他们是谁。这个机构的头子想给每个特工一份签名的文件,文件上写有:“这个签名文件的持有人(这里插入特工的化名)享有完全的外交豁免权。”所有的特工有他们自己的化名名单,故这个机构不能仅仅是分发签名文件。特工不想把他们的化名送给所属机构、敌方或者已经破坏了这个机构的计算机。另一方面,机构也不想盲目地签特工送来的文件。聪明的特工可能会代之一条消息,如“特工(名字)已经退休并获得每年100万美元的养老金。签名:总统先生”。在这种情况下,盲签名可能是有用的。假设所有特工都有10个可能的化名,这些化名都是他们自己选的,别人不知道。同时假设特工并不关心他们将在哪个化名下得到外交豁免权。再假设这个机构的计算机是情报局大型情报计算机ALICE,我们的特定代理部门是波哥大行动局(BOB)。 (1)BOB准备了n份文件,每一个使用不同的化名,并给予那个特工外交豁免权。 (2)BOB用不同的盲因子隐蔽每个文件。 (3)BOB把这n份隐蔽好的文件发送给ALICE。 (4)ALICE随机选择n-1份文件并向BOB索要... (查看原文)
    无心 1赞 2019-10-07 17:08:17
    —— 引自章节:5.3.2 盲签名协议
  • If I take a letter, lock it in a safe somewhere in New York, then tell you to read the letter, that's not security. That's obscurity. On the other hand, if I take a letter and lock it in a safe, and give you the safe along with the design specifications of the safe and a hundred identical safes with their combinations so that you and the world's best safecrackers can study the locking mechanism - and you still can't open the safe and read the letter - that's security. (查看原文)
    梦里醉逍遥 2012-09-01 21:34:21
    —— 引自第5页
  • And don't forget Kerchhoffs' assumption: If the strength of your new cryptosystem relies on the fact that the attackers does not know the algorithm's inner workings, you're sunk. If you believe that keeping the algorithm's insides secret improves the security of your cryptosystem more than letting the academic community analyze it, you're wrong. And if you think someone won't disassemble your code and reverse-engineer your algorithm, you're naive. The best algorithms we have are the ones that have been made public, have been attacked by world's best cryptographers for years, and are still unbreakable. (查看原文)
    梦里醉逍遥 2012-09-01 21:48:58
    —— 引自第20页
  • There are many cryptographic algorithms. These are three of the most common: - DES (Data Encryption Standard) is the most popular computer encryption algorithm. DES is a U.S. and international standard. It is a symmetric algorithm; the same key is used for encryption and decryption. - RSA (named for its creators - Rivest, Shamir, and Adleman) is the most popular public-key algorithm. It can be used for both encryption and digital signatures. - DSA (Digital Signature Algorithm, used as part of the Digital Signature Standard) is another public-key algorithm. It cannot be used for encryption, but only for digital signatures. (查看原文)
    梦里醉逍遥 1回复 2012-09-01 22:00:21
    —— 引自第28页
  • Random-number generators are not random because they don't have to be. Most simple applications, like computer games, need so few random numbers that they hardly notice. However, cryptography is extremely sensitive to the properties of random-number generators. ... Of course, it is impossible to produce something truly random on a computer. Donald Knuth quotes John von Neumann as saying: "Anyone who considers arithmetical methods of producing random digits is, of course, in a state of sin". ... The best a computer can produce is a pseudo-random-sequence generator. ... For our purposes, a sequence generator is pseudo-random if it has this property: 1. It looks random. This means that it passes all the statistical tests of randomness that we can find. ... For a sequence to be crypto... (查看原文)
    梦里醉逍遥 2012-09-01 23:09:05
    —— 引自第50页
  • Factoring large numbers is hard. Unfortunately for algorithm designers, it is getting easier. Even worse, it is getting easier faster than mathematicians expected. In 1976 Richard Guy wrote: “I shall be surprised if anyone regularly factors numbers of size 10^80 without special form during the present century”. In 1977 Ron Rivest said that factoring a 125-digit number would take 40 quadrillion years. In 1994 a 129-digit number was factored. If there is any lesson in all this, it is that making predictions is foolish. (查看原文)
    梦里醉逍遥 2012-09-05 16:55:00
    —— 引自第141页
  • 自动执行协议(self-enforcing protocol)是协议中最好的。协议本身就保证了公平性,不需要仲裁者来完成协议,也不需要裁决者来解决争端。协议的构成本身使得不可能发生争端。如果协议中的一方试图欺骗,其他各方马上就能发觉并且停止执行协议。无论欺骗方想通过欺骗来得到什么,他都不能如愿以偿。 每个协议最好都是自动执行协议。不幸的是,对于所有情形,都没有一个自动执行协议。 (查看原文)
    无心 2019-09-09 17:30:19
    —— 引自章节:2.1.5 自动执行协议