home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / FAQSYS18.ZIP / FAQS.DAT / RSACRYPT.20 < prev    next >
Internet Message Format  |  1995-12-12  |  168KB

  1. From faq-editor@rsa.com Mon Aug 22 19:45:03 1994
  2. From: faq-editor@rsa.com
  3. Newsgroups: sci.crypt,talk.politics.crypto,alt.security.ripem,sci.answers,talk.answers,alt.answers,news.answers
  4. Subject: RSA Cryptography Today FAQ (1/3)
  5. Supersedes: <cryptography-faq/rsa/part1_775371303@rtfm.mit.edu>
  6. Followup-To: poster
  7. Date: 19 Aug 1994 02:26:37 GMT
  8. Organization: none
  9. Reply-To: faq-editor@rsa.com
  10. NNTP-Posting-Host: bloom-picayune.mit.edu
  11. X-Last-Updated: 1994/06/13
  12. Originator: faqserv@bloom-picayune.MIT.EDU
  13.  
  14. Archive-name: cryptography-faq/rsa/part1
  15. Last-modified: 93/09/20
  16. Version: 2.0
  17. Distribution-agent: tmp@netcom.com
  18.  
  19.  
  20. (This document has been brought to you in part by CRAM.  See the
  21. bottom for more information, including instructions on how to
  22. obtain updates.)
  23.  
  24. ===
  25.  
  26.  
  27.                           Answers To
  28.                  FREQUENTLY ASKED QUESTIONS
  29.                  About Today's Cryptography
  30.  
  31.  
  32.  
  33.                           Paul Fahn
  34.                       RSA Laboratories
  35.                      100 Marine Parkway
  36.                    Redwood City, CA  94065
  37.  
  38.  
  39.  
  40.    Copyright (c) 1993 RSA Laboratories, a division of RSA Data Security,
  41.       Inc. All rights reserved.
  42.  
  43.    Version 2.0, draft 2f
  44.    Last update: September 20, 1993
  45.  
  46.  
  47.  
  48. ------------------------------------------------------------------------
  49.                          Table of Contents
  50.  
  51. [ part 1 ]
  52.  
  53. 1 General 
  54.        1.1  What is encryption? 
  55.        1.2  What is authentication? What is a digital signature? 
  56.        1.3  What is public-key cryptography? 
  57.        1.4  What are the advantages and disadvantages of public-key 
  58.             cryptography over secret-key cryptography? 
  59.        1.5  Is cryptography patentable in the U.S.? 
  60.        1.6  Is cryptography exportable from the U.S.? 
  61.  
  62. 2 RSA 
  63.        2.1  What is RSA? 
  64.        2.2  Why use RSA rather than DES? 
  65.        2.3  How fast is RSA? 
  66.        2.4  How much extra message length is caused by using RSA? 
  67.        2.5  What would it take to break RSA? 
  68.        2.6  Are strong primes necessary in RSA? 
  69.        2.7  How large a modulus (key) should be used in RSA? 
  70.        2.8  How large should the primes be? 
  71.        2.9  How does one find random numbers for keys? 
  72.        2.10  What if users of RSA run out of distinct primes? 
  73.        2.11  How do you know if a number is prime? 
  74.        2.12  How is RSA used for encryption in practice? 
  75.        2.13  How is RSA used for authentication in practice? 
  76.        2.14  Does RSA help detect altered documents and transmission errors? 
  77.        2.15  What are alternatives to RSA? 
  78.        2.16  Is RSA currently in use today? 
  79.        2.17  Is RSA an official standard today? 
  80.        2.18  Is RSA a de facto standard? Why is a de facto standard important? 
  81.        2.19  Is RSA patented? 
  82.        2.20  Can RSA be exported from the U.S.? 
  83.  
  84. [ part 2 ]
  85.  
  86. 3 Key Management 
  87.        3.1  What key management issues are involved in public-key 
  88.             cryptography? 
  89.        3.2  Who needs a key? 
  90.        3.3  How does one get a key pair? 
  91.        3.4  Should a public key or private key be shared among users? 
  92.        3.5  What are certificates? 
  93.        3.6  How are certificates used? 
  94.        3.7  Who issues certificates and how? 
  95.        3.8  What is a CSU, or, How do certifying authorities store their 
  96.             private keys? 
  97.        3.9  Are certifying authorities susceptible to attack? 
  98.        3.10  What if the certifying authority's key is lost or compromised? 
  99.        3.11  What are Certificate Revocation Lists (CRLs)? 
  100.        3.12  What happens when a key expires? 
  101.        3.13  What happens if I lose my private key? 
  102.        3.14  What happens if my private key is compromised? 
  103.        3.15  How should I store my private key? 
  104.        3.16  How do I find someone else's public key? 
  105.        3.17  How can signatures remain valid beyond the expiration dates of 
  106.              their keys, or, How do you verify a 20-year-old signature? 
  107.        3.18  What is a digital time-stamping service? 
  108.  
  109. 4 Factoring and Discrete Log 
  110.        4.1  What is a one-way function? 
  111.        4.2  What is the significance of one-way functions for cryptography? 
  112.        4.3  What is the factoring problem? 
  113.        4.4  What is the significance of factoring in cryptography? 
  114.        4.5  Has factoring been getting easier? 
  115.        4.6  What are the best factoring methods in use today? 
  116.        4.7  What are the prospects for theoretical factoring breakthroughs? 
  117.        4.8  What is the RSA Factoring Challenge? 
  118.        4.9  What is the discrete log problem? 
  119.        4.10  Which is easier, factoring or discrete log? 
  120.  
  121. 5 DES 
  122.        5.1  What is DES? 
  123.        5.2  Has DES been broken? 
  124.        5.3  How does one use DES securely? 
  125.        5.4  Can DES be exported from the U.S.? 
  126.        5.5  What are the alternatives to DES? 
  127.        5.6  Is DES a group? 
  128.  
  129. [part 3]
  130.  
  131. 6 Capstone, Clipper, and DSS 
  132.        6.1  What is Capstone? 
  133.        6.2  What is Clipper? 
  134.        6.3  How does the Clipper chip work? 
  135.        6.4  Who are the escrow agencies? 
  136.        6.5  What is Skipjack? 
  137.        6.6  Why is Clipper controversial? 
  138.        6.7  What is the current status of Clipper? 
  139.        6.8  What is DSS? 
  140.        6.9  Is DSS secure? 
  141.        6.10  Is use of DSS covered by any patents? 
  142.        6.11  What is the current status of DSS? 
  143.  
  144. 7 NIST and NSA 
  145.        7.1  What is NIST? 
  146.        7.2  What role does NIST play in cryptography? 
  147.        7.3  What is the NSA? 
  148.        7.4  What role does the NSA play in commercial cryptography? 
  149.  
  150. 8 Miscellaneous 
  151.        8.1  What is the legal status of documents signed with digital 
  152.             signatures? 
  153.        8.2  What is a hash function? What is a message digest? 
  154.        8.3  What are MD2, MD4 and MD5? 
  155.        8.4  What is SHS? 
  156.        8.5  What is Kerberos? 
  157.        8.6  What are RC2 and RC4? 
  158.        8.7  What is PEM? 
  159.        8.8  What is RIPEM? 
  160.        8.9  What is PKCS? 
  161.        8.10  What is RSAREF? 
  162.  
  163. --------------------------------------------------------------------
  164.  
  165.  
  166. 1 General
  167.  
  168. 1.1 What is encryption?
  169.  
  170. Encryption is the transformation of data into a form unreadable by anyone
  171. without a secret decryption key. Its purpose is to ensure privacy by
  172. keeping the information hidden from anyone for whom it is not intended, 
  173. even those who can see the encrypted data. For example, one may wish to 
  174. encrypt files on a hard disk to prevent an intruder from reading them. 
  175.  
  176. In a multi-user setting, encryption allows secure communication over an
  177. insecure channel. The general scenario is as follows: Alice wishes to 
  178. send a message to Bob so that no one else besides Bob can read it. Alice 
  179. encrypts the message, which is called the plaintext, with an encryption 
  180. key; the encrypted message, called the ciphertext, is sent to Bob. Bob 
  181. decrypts the ciphertext with the decryption key and reads the message. An 
  182. attacker, Charlie, may either try to obtain the secret key or to recover 
  183. the plaintext without using the secret key. In a secure cryptosystem, the 
  184. plaintext cannot be recovered from the ciphertext except by using the 
  185. decryption key. In a symmetric cryptosystem, a single key serves as both 
  186. the encryption and decryption keys.
  187.  
  188. Cryptography has been around for millennia; see Kahn [37] for a 
  189. good history of cryptography; see Rivest [69] and Brassard
  190. [10] for an introduction to modern cryptography.
  191.  
  192.  
  193. 1.2 What is authentication? What is a digital signature?
  194.  
  195. Authentication in a digital setting is a process whereby the receiver of a 
  196. digital message can be confident of the identity of the sender and/or the
  197. integrity of the message. Authentication protocols can be based on either 
  198. conventional secret-key cryptosystems like DES or on public-key systems 
  199. like RSA; authentication in public-key systems uses digital signatures.
  200.  
  201. In this document, authentication will generally refer to the use of digital
  202. signatures, which play a function for digital documents similar to that 
  203. played by handwritten signatures for printed documents: the signature is an 
  204. unforgeable piece of data asserting that a named person wrote or otherwise 
  205. agreed to the document to which the signature is attached. The recipient, as 
  206. well as a third party, can verify both that the document did indeed originate 
  207. >from the person whose signature is attached and that the document has not 
  208. been altered since it was signed. A secure digital signature system thus 
  209. consists of two parts: a method of signing a document such that forgery is 
  210. infeasible, and a method of verifying that a signature was actually generated 
  211. by whomever it represents. Furthermore, secure digital signatures cannot be 
  212. repudiated; i.e., the signer of a document cannot later disown it by claiming 
  213. it was forged.
  214.  
  215. Unlike encryption, digital signatures are a recent development, the
  216. need for which has arisen with the proliferation of digital communications.
  217.  
  218.  
  219. 1.3 What is public-key cryptography? 
  220.  
  221. Traditional cryptography is based on the sender and receiver of a message 
  222. knowing and using the same secret key: the sender uses the secret key to 
  223. encrypt the message, and the receiver uses the same secret key to decrypt 
  224. the message. This method is known as secret-key cryptography. The main 
  225. problem is getting the sender and receiver to agree on the secret key 
  226. without anyone else finding out. If they are in separate physical locations, 
  227. they must trust a courier, or a phone system, or some other transmission 
  228. system to not disclose the secret key being communicated. Anyone who 
  229. overhears or intercepts the key in transit can later read all messages 
  230. encrypted using that key. The generation, transmission and storage of keys 
  231. is called key management; all cryptosystems must deal with key management 
  232. issues. Secret-key cryptography often has difficulty providing secure key 
  233. management.
  234.  
  235. Public-key cryptography was invented in 1976 by Whitfield Diffie and
  236. Martin Hellman [29] in order to solve the key management problem. In the 
  237. new system, each person gets a pair of keys, called the public key and 
  238. the private key. Each person's public key is published while the private 
  239. key is kept secret. The need for sender and receiver to share secret 
  240. information is eliminated: all communications involve only public keys, 
  241. and no private key is ever transmitted or shared. No longer is it necessary 
  242. to trust some communications channel to be secure against eavesdropping 
  243. or betrayal. Anyone can send a confidential message just using public 
  244. information, but it can only be decrypted with a private key that is in 
  245. the sole possession of the intended recipient. Furthermore, public-key 
  246. cryptography can be used for authentication (digital signatures) as well as 
  247. for privacy (encryption). 
  248.  
  249. Here's how it works for encryption: when Alice wishes to send a message to 
  250. Bob, she looks up Bob's public key in a directory, uses it to encrypt the 
  251. message and sends it off. Bob then uses his private key to decrypt the 
  252. message and read it. No one listening in can decrypt the message. Anyone 
  253. can send an encrypted message to Bob but only Bob can read it. Clearly, one 
  254. requirement is that no one can figure out the private key from the 
  255. corresponding public key.
  256.  
  257. Here's how it works for authentication: Alice, to sign a message, does
  258. a computation involving both her private key and the message itself; the
  259. output is called the digital signature and is attached to the message,
  260. which is then sent. Bob, to verify the signature, does some computation 
  261. involving the message, the purported signature, and Alice's public key. If 
  262. the results properly hold in a simple mathematical relation, the signature 
  263. is verified as genuine; otherwise, the signature may be fraudulent or the 
  264. message altered, and they are discarded.
  265.  
  266. A good history of public-key cryptography, by one of its inventors, is 
  267. given by Diffie [27].
  268.  
  269.  
  270. 1.4 What are the advantages and disadvantages of public-key cryptography 
  271.     over secret-key cryptography?}
  272.  
  273. The primary advantage of public-key cryptography is increased security: 
  274. the private keys do not ever need to be transmitted or revealed to anyone. 
  275. In a secret-key system, by contrast, there is always a chance that an 
  276. enemy could discover the secret key while it is being transmitted.
  277.  
  278. Another major advantage of public-key systems is that they can provide 
  279. a method for digital signatures. Authentication via secret-key systems
  280. requires the sharing of some secret and sometimes requires trust of a 
  281. third party as well. A sender can then repudiate a previously signed message 
  282. by claiming that the shared secret was somehow compromised by one of the
  283. parties sharing the secret. For example, the Kerberos secret-key 
  284. authentication system [79] involves a central database that keeps copies 
  285. of the secret keys of all users; a Kerberos-authenticated message would 
  286. most likely not be held legally binding, since an attack on the database 
  287. would allow widespread forgery. Public-key authentication, on the other 
  288. hand, prevents this type of repudiation; each user has sole responsibility 
  289. for protecting his or her private key. This property of public-key 
  290. authentication is often called non-repudiation. 
  291.  
  292. Furthermore, digitally signed messages can be proved authentic to a third 
  293. party, such as a judge, thus allowing such messages to be legally binding. 
  294. Secret-key authentication systems such as Kerberos were designed to 
  295. authenticate access to network resources, rather than to authenticate 
  296. documents, a task which is better achieved via digital signatures.
  297.  
  298. A disadvantage of using public-key cryptography for encryption is speed: 
  299. there are popular secret-key encryption methods which are significantly 
  300. faster than any currently available public-key encryption method. But 
  301. public-key cryptography can share the burden with secret-key cryptography 
  302. to get the best of both worlds. 
  303.  
  304. For encryption, the best solution is to combine public- and secret-key 
  305. systems in order to get both the security advantages of public-key systems 
  306. and the speed advantages of secret-key systems. The public-key system can 
  307. be used to encrypt a secret key which is then used to encrypt the bulk 
  308. of a file or message. This is explained in more detail in Question 2.12
  309. in the case of RSA. Public-key cryptography is not meant to replace 
  310. secret-key cryptography, but rather to supplement it, to make it more 
  311. secure. The first use of public-key techniques was for secure key exchange 
  312. in an otherwise secret-key system [29]; this is still one of its primary 
  313. functions.
  314.  
  315. Secret-key cryptography remains extremely important and is the subject of
  316. much ongoing study and research. Some secret-key encryption systems are 
  317. discussed in Questions 5.1 and 5.5.
  318.  
  319.  
  320. 1.5 Is cryptography patentable in the U.S.?
  321.  
  322. Cryptographic systems are patentable. Many secret-key cryptosystems 
  323. have been patented, including DES (see Question 5.1). The basic ideas 
  324. of public-key cryptography are contained in U.S. Patent 4,200,770, by M.
  325. Hellman, W. Diffie, and R. Merkle, issued 4/29/80 and in U.S. Patent 
  326. 4,218,582, by M. Hellman and R. Merkle, issued 8/19/80; similar patents have 
  327. been issued throughout the world. The exclusive licensing rights to both 
  328. patents are held by Public Key Partners (PKP), of Sunnyvale, California, 
  329. which also holds the rights to the RSA patent (see Question 2.19). 
  330. Usually all of these public-key patents are licensed together. 
  331.  
  332. All legal challenges to public-key patents have been settled before
  333. judgment. In a recent case, for example, PKP brought suit against the TRW 
  334. Corporation which was using public-key cryptography (the ElGamal system) 
  335. without a license; TRW claimed it did not need to license. In June 1992 a 
  336. settlement was reached in which TRW agreed to license to the patents.
  337.  
  338. Some patent applications for cryptosystems have been blocked by intervention 
  339. by the NSA (see Question 7.3) or other intelligence or defense agencies, 
  340. under the authority of the Invention Secrecy Act of 1940 and the National 
  341. Security Act of 1947; see Landau [46] for some recent cases related to 
  342. cryptography.
  343.  
  344.  
  345. 1.6 Is cryptography exportable from the U.S.?
  346.  
  347. All cryptographic products need export licenses from the State Department, 
  348. acting under authority of the International Traffic in Arms Regulation 
  349. (ITAR), which defines cryptographic devices, including software, as 
  350. munitions. The U.S. government has historically been reluctant to grant 
  351. export licenses for encryption products stronger than some basic level 
  352. (not publicly stated). 
  353.  
  354. Under current regulations, a vendor seeking to export a product using 
  355. cryptography first submits an request to the State Department's Defense
  356. Trade Control office. Export jurisdiction may then be passed to the
  357. Department of Commerce, whose export procedures are generally simple and
  358. efficient. If jurisdiction remains with the State Department, further
  359. review, perhaps lengthy, is required before export is either approved or
  360. denied; the National Security Agency (NSA, see Question 7.3) may become 
  361. directly involved at this point. The details of the export approval 
  362. process change frequently.
  363.  
  364. The NSA has de facto control over export of cryptographic products. The State 
  365. Department will not grant a license without NSA approval and routinely grants 
  366. licenses whenever NSA does approve. Therefore, the policy decisions over 
  367. exporting cryptography ultimately rest with the NSA.
  368.  
  369. It is the stated policy of the NSA not to restrict export of cryptography
  370. for authentication; it is only concerned with the use of cryptography for 
  371. privacy. A vendor seeking to export a product for authentication only will 
  372. be granted an export license as long as it can demonstrate that the product 
  373. cannot be easily modified for encryption; this is true even for very strong 
  374. systems, such as RSA with large key sizes. Furthermore, the bureaucratic 
  375. procedures are simpler for authentication products than for privacy products. 
  376. An authentication product needs NSA and State Dept. approval only once, 
  377. whereas an encryption product may need approval for every sale or every 
  378. product revision.
  379.  
  380. Export policy is currently a matter of great controversy, as many software
  381. and hardware vendors consider current export regulations overly restrictive 
  382. and burdensome. The Software Publishers Association (SPA), a software 
  383. industry group, has recently been negotiating with the government in order 
  384. to get export license restrictions eased; one agreement was reached that 
  385. allows simplified procedures for export of two bulk encryption ciphers, RC2 
  386. and RC4 (see Question 8.6), when the key size is limited. Also, export 
  387. policy is less restrictive for foreign subsidiaries and overseas offices of 
  388. U.S. companies.
  389.  
  390. In March 1992, the Computer Security and Privacy Advisory Board voted 
  391. unanimously to recommend a national review of cryptography policy, 
  392. including export policy. The Board is an official advisory board to NIST 
  393. (see Question 7.1) whose members are drawn from both the government 
  394. and the private sector. The Board stated that a public debate is the only 
  395. way to reach a consensus policy to best satisfy competing interests: 
  396. national security and law enforcement agencies like restrictions on 
  397. cryptography, especially for export, whereas other government agencies and 
  398. private industry want greater freedom for using and exporting cryptography. 
  399. Export policy has traditionally been decided solely by agencies concerned 
  400. with national security, without much input from those who wish to encourage 
  401. commerce in cryptography. U.S. export policy may undergo significant change 
  402. in the next few years.
  403.  
  404.  
  405. 2 RSA
  406.  
  407. 2.1 What is RSA?
  408.  
  409. RSA is a public-key cryptosystem for both encryption and authentication;
  410. it was invented in 1977 by Ron Rivest, Adi Shamir, and Leonard Adleman
  411. [74]. It works as follows: take two large primes, p and q, and find their 
  412. product n = pq; n is called the modulus. Choose a number, e, less than n 
  413. and relatively prime to (p-1)(q-1), and find its inverse, d, mod (p-1)(q-1),
  414. which means that ed = 1 mod (p-1)(q-1); e and d are called the public and 
  415. private exponents, respectively. The public key is the pair (n,e); the 
  416. private key is d. The factors p and q must be kept secret, or destroyed. 
  417.  
  418. It is difficult (presumably) to obtain the private key d from the public 
  419. key (n,e). If one could factor n into p and q, however, then one could 
  420. obtain the private key d. Thus the entire security of RSA is predicated 
  421. on the assumption that factoring is difficult; an easy factoring method 
  422. would ``break'' RSA (see Questions 2.5 and 4.4).
  423.  
  424. Here is how RSA can be used for privacy and authentication (in practice, 
  425. actual use is slightly different; see Questions 2.12 and 2.13):
  426.  
  427. RSA privacy (encryption): suppose Alice wants to send a private message, 
  428. m, to Bob. Alice creates the ciphertext c by exponentiating: c = m^e 
  429. mod n, where e and n are Bob's public key. To decrypt, Bob also 
  430. exponentiates: m = c^d mod n, and recovers the original message m;
  431. the relationship between e and d ensures that Bob correctly recovers m.
  432. Since only Bob knows d, only Bob can decrypt. 
  433.  
  434. RSA authentication: suppose Alice wants to send a signed document m to Bob. 
  435. Alice creates a digital signature s by exponentiating: s = m^d mod n, 
  436. where d and n belong to Alice's key pair. She sends s and m to Bob. 
  437. To verify the signature, Bob exponentiates and checks that the message m 
  438. is recovered: m = s^e mod n, where e and n belong to Alice's public 
  439. key.
  440.  
  441. Thus encryption and authentication take place without any sharing of 
  442. private keys: each person uses only other people's public keys and his or 
  443. her own private key. Anyone can send an encrypted message or verify a signed 
  444. message, using only public keys, but only someone in possession of the correct 
  445. private key can decrypt or sign a message. 
  446.  
  447.  
  448. 2.2 Why use RSA rather than DES?
  449.  
  450. RSA is not an alternative or replacement for DES; rather it supplements
  451. DES (or any other fast bulk encryption cipher) and is used together with DES 
  452. in a secure communications environment. (Note: for an explanation of DES,
  453. see Question 5.1.)
  454.  
  455. RSA allows two important functions not provided by DES: secure key exchange 
  456. without prior exchange of secrets, and digital signatures. For encrypting
  457. messages, RSA and DES are usually combined as follows: first the message is 
  458. encrypted with a random DES key, and then, before being sent over an insecure 
  459. communications channel, the DES key is encrypted with RSA. Together, the 
  460. DES-encrypted message and the RSA-encrypted DES key are sent. This protocol 
  461. is known as an RSA digital envelope.
  462.  
  463. One may wonder, why not just use RSA to encrypt the whole message and not use 
  464. DES at all? Although this may be fine for small messages, DES (or another 
  465. cipher) is preferable for larger messages because it is much faster than RSA
  466. (see Question 2.3).
  467.  
  468. In some situations, RSA is not necessary and DES alone is sufficient. This 
  469. includes multi-user environments where secure DES-key agreement can take 
  470. place, for example by the two parties meeting in private. Also, RSA is 
  471. usually not necessary in a single-user environment; for example, if you want 
  472. to keep your personal files encrypted, just do so with DES using, say, your 
  473. personal password as the DES key. RSA, and public-key cryptography in general,
  474. is best suited for a multi-user environment. Also, any system in which digital
  475. signatures are desired needs RSA or some other public-key system.
  476.  
  477.  
  478. 2.3 How fast is RSA?
  479.  
  480. An ``RSA operation,'' whether for encrypting or decrypting, signing
  481. or verifying, is essentially a modular exponentiation, which can be 
  482. performed by a series of modular multiplications.
  483.  
  484. In practical applications, it is common to choose a small public 
  485. exponent for the public key; in fact, entire groups of users can use 
  486. the same public exponent. This makes encryption faster than decryption 
  487. and verification faster than signing. Algorithmically, public-key 
  488. operations take O(k^2) steps, private key operations take O(k^3) 
  489. steps, and key generation takes O(k^4) steps, where k is the number of 
  490. bits in the modulus; O-notation refers to the an upper bound on the 
  491. asymptotic running time of an algorithm [22].
  492.  
  493. There are many commercially available hardware implementations of RSA, 
  494. and there are frequent announcements of newer and faster chips. The 
  495. fastest current RSA chip [76] has a throughput greater than 600 Kbits 
  496. per second with a 512-bit modulus, implying that it performs over 1000 
  497. RSA private-key operations per second. It is expected that RSA speeds 
  498. will reach 1 Mbit/second within a year or so.
  499.  
  500. By comparison, DES is much faster than RSA. In software, DES is generally at 
  501. least 100 times as fast as RSA. In hardware, DES is between 1,000 and 10,000
  502. times as fast, depending on the implementations. RSA will probably narrow 
  503. the gap a bit in coming years, as it finds growing commercial markets, but 
  504. will never match the performance of DES.
  505.  
  506.  
  507. 2.4 How much extra message length is caused by using RSA?
  508.  
  509. Only a very small amount of data expansion is involved when using RSA. For 
  510. encryption, a message may be padded to a length that is a multiple of the 
  511. block length, usually 64 bits, since RSA is usually combined with a 
  512. secret-key block cipher such as DES (see Question 2.12). Encrypting 
  513. the DES key takes as many additional bits as the size of the RSA modulus.
  514.  
  515.  
  516. For authentication, an RSA digital signature is appended to a document.
  517. An RSA signature, including information such as the name of the signer, is 
  518. typically a few hundred bytes long. One or more certificates (see Question 
  519. 3.5) may be included as well; certificates can be used in conjunction
  520. with any digital signature method. A typical RSA certificate is a few 
  521. hundred bytes long.
  522.  
  523.  
  524. 2.5 What would it take to break RSA?
  525.  
  526. There are a few possible interpretations of ``breaking RSA''. The most 
  527. damaging would be for an attacker to discover the private key corresponding 
  528. to a given public key; this would enable the attacker both to read all 
  529. messages encrypted with the public key and to forge signatures. The obvious 
  530. way to do this attack is to factor the public modulus, n, into its two prime
  531. factors, p and q. From p, q, and e, the public exponent, the attacker can 
  532. easily get d, the private key. The hard part is factoring n; the security 
  533. of RSA depends of factoring being difficult. In fact, the task of recovering
  534. the private key is equivalent to the task of factoring the modulus: you can 
  535. use d to factor n, as well as use the factorization of n to find d. See 
  536. Questions 4.5 and 4.6 regarding the state of the art in factoring. It should
  537. be noted that hardware improvements alone will not weaken RSA, as long as
  538. appropriate key lengths are used; in fact, hardware improvements should 
  539. increase the security of RSA (see Question 4.5).
  540.  
  541. Another way to break RSA is to find a technique to compute e-th roots mod 
  542. n. Since c = m^e, the e-th root of c is the message m. This attack would 
  543. allow someone to recover encrypted messages and forge signatures even 
  544. without knowing the private key. This attack is not known to be equivalent to 
  545. factoring. No methods are currently known that attempt to break RSA in this 
  546. way. 
  547.  
  548. The attacks just mentioned are the only ways to break RSA in such a 
  549. way as to be able to recover all messages encrypted under a given key. 
  550. There are other methods, however, which aim to recover single messages;
  551. success would not enable the attacker to recover other messages 
  552. encrypted with the same key. 
  553.  
  554. The simplest single-message attack is the guessed plaintext attack. An 
  555. attacker sees a ciphertext, guesses that the message might be ``Attack at 
  556. dawn'', and encrypts this guess with the public key of the recipient; by 
  557. comparison with the actual ciphertext, the attacker knows whether or not 
  558. the guess was correct. This attack can be thwarted by appending some random 
  559. bits to the message. Another single-message attack can occur if someone 
  560. sends the same message m to three others, who each have public exponent 
  561. e=3. An attacker who knows this and sees the three messages will be able 
  562. to recover the message m; this attack and ways to prevent it are discussed 
  563. by Hastad [35]. There are also some ``chosen ciphertext'' attacks, in 
  564. which the attacker creates some ciphertext and gets to see the corresponding 
  565. plaintext, perhaps by tricking a legitimate user into decrypting a fake 
  566. message; Davida [23] gives some examples.
  567.  
  568. Of course, there are also attacks that aim not at RSA itself but at
  569. a given insecure implementation of RSA; these do not count as ``breaking
  570. RSA'' because it is not any weakness in the RSA algorithm that is exploited,
  571. but rather a weakness in a specific implementation. For example, if someone 
  572. stores his private key insecurely, an attacker may discover it. One cannot 
  573. emphasize strongly enough that to be truly secure RSA requires a secure 
  574. implementation; mathematical security measures, such as choosing a long key 
  575. size, are not enough. In practice, most successful attacks will likely be 
  576. aimed at insecure implementations and at the key management stages of an RSA 
  577. system. See Section 3 for discussion of secure key management in an 
  578. RSA system.
  579.  
  580.  
  581. 2.6 Are strong primes necessary in RSA?
  582.  
  583. In the literature pertaining to RSA, it has often been suggested that in 
  584. choosing a key pair, one should use ``strong'' primes p and q to generate 
  585. the modulus n. Strong primes are those with certain properties that make 
  586. the product n hard to factor by specific factoring methods; such 
  587. properties have included, for example, the existence of a large prime 
  588. factor of p-1 and a large prime factor of p+1. The reason for these 
  589. concerns is that some factoring methods are especially suited to 
  590. primes p such that p-1 or p+1 has only small factors; strong primes
  591. are resistant to these attacks. 
  592.  
  593. However, recent advances in factoring (see Question 4.6) appear to 
  594. have obviated the advantage of strong primes; the elliptic curve factoring 
  595. algorithm is one such advance. The new factoring methods have as good a 
  596. chance of success on strong primes as on ``weak'' primes; therefore, choosing 
  597. strong primes does not significantly increase resistance to attacks. So for 
  598. now the answer is negative: strong primes are not necessary when using RSA, 
  599. although there is no danger in using them, except that it takes longer to 
  600. generate a key pair. However, new factoring algorithms may be developed in 
  601. the future which once again target primes with certain properties; if so, 
  602. choosing strong primes may again help to increase security. 
  603.  
  604.  
  605. 2.7 How large a modulus (key) should be used in RSA?
  606.  
  607. The best size for an RSA modulus depends on one's security needs. The larger 
  608. the modulus, the greater the security but also the slower the RSA operations. 
  609. One should choose a modulus length upon consideration, first, of one's 
  610. security needs, such as the value of the protected data and how long it needs 
  611. to be protected, and, second, of how powerful one's potential enemy is. 
  612. It is also possible that a larger key size will allow a digitally signed
  613. document to be valid for a longer time; see Question 3.17.
  614.  
  615. A good analysis of the security obtained by a given modulus length is given 
  616. by Rivest [72], in the context of discrete logarithms modulo a prime, but 
  617. it applies to RSA as well. Rivest's estimates imply that a 512-bit modulus 
  618. can be factored with an $8.2 million effort, less in the future. It may 
  619. therefore be advisable to use a longer modulus, perhaps 768 bits in length. 
  620. Those with extremely valuable data (or large potential damage from digital 
  621. forgery) may want to use a still longer modulus. A certifying authority 
  622. (see Question 3.5) might use a modulus of length 1000 bits or more, because 
  623. the validity of so many other key pairs depends on the security of the one 
  624. central key. 
  625.  
  626. The key of an individual user will expire after a certain time, say, two 
  627. years (see Question 3.12). Upon expiration, the user will generate a new 
  628. key which should be at least a few digits longer than the old key to 
  629. reflect the speed increases of computers over the two years. Recommended key 
  630. length schedules will probably be published by some authority or public body. 
  631.  
  632. Users should keep in mind that the estimated times to break RSA are averages 
  633. only. A large factoring effort, attacking many thousands of RSA moduli, may 
  634. succeed in factoring at least one in a reasonable time. Although the security 
  635. of any individual key is still strong, with some factoring methods there is 
  636. always a small chance that the attacker may get lucky and factor it quickly.
  637.  
  638. As for the slowdown caused by increasing the key size (see Question 
  639. 2.3), doubling the modulus length would, on average, increase the 
  640. time required for public-key operations (encryption and signature 
  641. verification) by a factor of 4, and increase the time taken by private 
  642. key operations (decryption and signing) by a factor of 8. The reason that
  643. public-key operations are affected less than private-key operations is that
  644. the public exponent can remain fixed when the modulus is increased, whereas
  645. the private exponent increases proportionally. Key generation time would 
  646. increase by a factor of 16 upon doubling the modulus, but this is a 
  647. relatively infrequent operation for most users.
  648.  
  649.  
  650. 2.8 How large should the primes be?
  651.  
  652. The two primes, p and q, which compose the modulus, should be of
  653. roughly equal length; this will make the modulus harder to factor than
  654. if one of the primes was very small. Thus if one chooses to use a 512-bit 
  655. modulus, the primes should each have length approximately 256 bits.
  656.  
  657.  
  658. 2.9 How does one find random numbers for keys?
  659.  
  660. One needs a source of random numbers in order to find two random primes
  661. to compose the modulus. If one used a predictable method of generating
  662. the primes, an adversary could mount an attack by trying to recreate the
  663. key generation process. 
  664.  
  665. Random numbers obtained from a physical process are in principle the best.
  666. One could use a hardware device, such as a diode; some are sold commercially 
  667. on computer add-in boards for this purpose. Another idea is to use physical 
  668. movements of the computer user, such as keystroke timings measured in
  669. microseconds. By whichever method, the random numbers may still contain
  670. some correlations preventing sufficient statistical randomness. Therefore,
  671. it is best to run them through a good hash function (see Question 8.2) 
  672. before actually using them. 
  673.  
  674. Another approach is to use a pseudorandom number generator fed by a random
  675. seed. Since these are deterministic algorithms, it is important to find
  676. one that is very unpredictable and also to use a truly random seed. There is
  677. a wide literature on the subject of pseudorandom number generators. See
  678. Knuth [41] for an introduction.
  679.  
  680. Note that one does not need random numbers to determine the public and
  681. private exponents in RSA, after choosing the modulus. One can simply
  682. choose an arbitrary value for the public exponent, which then determines
  683. the private exponent, or vice versa.
  684.  
  685.  
  686. 2.10 What if users of RSA run out of distinct primes?
  687.  
  688. There are enough prime numbers that RSA users will never run out of them.
  689. For example, the number of primes of length 512 bits or less exceeds
  690. 10^{150}, according to the prime number theorem; this is more than the 
  691. number of atoms in the known universe.
  692.  
  693.  
  694. 2.11 How do you know if a number is prime?
  695.  
  696. It is generally recommended to use probabilistic primality testing, which
  697. is much quicker than actually proving a number prime. One can use a 
  698. probabilistic test that decides if a number is prime with probability of 
  699. error less than 2^{-100}. For further discussion of some primality testing 
  700. algorithms, see the papers in the bibliography of [5]. For some empirical 
  701. results on the reliability of simple primality tests see Rivest [70]; one 
  702. can perform very fast primality tests and be extremely confident in the 
  703. results. A simple algorithm for choosing probable primes was recently 
  704. analyzed by Brandt and Damgard [9].
  705.  
  706.  
  707. 2.12 How is RSA used for encryption in practice?
  708.  
  709. RSA is combined with a secret-key cryptosystem, such as DES, to encrypt
  710. a message by means of an RSA digital envelope. 
  711.  
  712. Suppose Alice wishes to send an encrypted message to Bob. She first 
  713. encrypts the message with DES, using a randomly chosen DES key. Then 
  714. she looks up Bob's public key and uses it to encrypt the DES key. The 
  715. DES-encrypted message and the RSA-encrypted DES key together form the RSA 
  716. digital envelope and are sent to Bob. Upon receiving the digital envelope, 
  717. Bob decrypts the DES key with his private key, then uses the DES key 
  718. to decrypt to message itself.
  719.  
  720.  
  721. 2.13 How is RSA used for authentication in practice?
  722.  
  723. Suppose Alice wishes to send a signed message to Bob. She uses a hash
  724. function on the message (see Question 8.2) to create a message digest, 
  725. which serves as a ``digital fingerprint'' of the message. She then 
  726. encrypts the message digest with her RSA private key; this is the digital 
  727. signature, which she sends to Bob along with the message itself. Bob, 
  728. upon receiving the message and signature, decrypts the signature with
  729. Alice's public key to recover the message digest. He then hashes the 
  730. message with the same hash function Alice used and compares the result
  731. to the message digest decrypted from the signature. If they are exactly
  732. equal, the signature has been successfully verified and he can be confident
  733. that the message did indeed come from Alice. If, however, they are not 
  734. equal, then the message either originated elsewhere or was altered after
  735. it was signed, and he rejects the message. Note that for authentication, 
  736. the roles of the public and private keys are converse to their roles in 
  737. encryption, where the public key is used to encrypt and the private key 
  738. to decrypt.
  739.  
  740. In practice, the public exponent is usually much smaller than the 
  741. private exponent; this means that the verification of a signature is faster 
  742. than the signing. This is desirable because a message or document will 
  743. only be signed by an individual once, but the signature may be verified 
  744. many times.
  745.  
  746. It must be infeasible for anyone to either find a message that hashes to 
  747. a given value or to find two messages that hash to the same value. If either 
  748. were feasible, an intruder could attach a false message onto Alice's 
  749. signature. Hash functions such as MD4 and MD5 (see Question 8.3) have been 
  750. designed specifically to have the property that finding a match is 
  751. infeasible, and are therefore considered suitable for use in cryptography.
  752.  
  753. One or more certificates (see Question 3.5) may accompany a digital 
  754. signature. A certificate is a signed document attesting to the identity and 
  755. public key of the person signing the message. Its purpose is to prevent
  756. someone from impersonating someone else, using a phony key pair. If a 
  757. certificate is present, the recipient (or a third party) can check the 
  758. authenticity of the public key, assuming the certifier's public key is
  759. itself trusted. 
  760.  
  761.  
  762. 2.14 Does RSA help detect altered documents and transmission errors?
  763.  
  764. An RSA digital signature is superior to a handwritten signature in that
  765. it attests to the contents of a message as well as to the identity of
  766. the signer. As long as a secure hash function (see Question 8.2) is used, 
  767. there is no way to take someone's signature from one document and attach 
  768. it to another, or to alter the signed message in any way. The slightest 
  769. change in a signed document will cause the digital signature verification
  770. process to fail. Thus, RSA authentication allows people to check the
  771. integrity of signed documents. Of course, if a signature verification
  772. fails, it may be unclear whether there was an attempted forgery or 
  773. simply a transmission error.
  774.  
  775.  
  776. 2.15 What are alternatives to RSA?
  777.  
  778. Many other public-key cryptosystems have been proposed, as a look through
  779. the proceedings of the annual Crypto and Eurocrypt conferences quickly 
  780. reveals. A mathematical problem called the knapsack problem was the basis 
  781. for several systems [52], but these have lost favor because several 
  782. versions were broken. Another system, designed by ElGamal [30], is based 
  783. on the discrete logarithm problem. The ElGamal system was, in part, the 
  784. basis for several later signature methods, including one by Schnorr [75], 
  785. which in turn was the basis for DSS, the digital signature standard 
  786. proposed by NIST (see Question 6.8). Because of the NIST proposal, the 
  787. relative merits of these signature systems versus RSA signatures has 
  788. received a lot of attention; see [57] for a discussion. The ElGamal system 
  789. has been used successfully in applications; it is slower for encryption 
  790. and verification than RSA and its signatures are larger than RSA signatures.
  791.  
  792. In 1976, before RSA, Diffie and Hellman [29] proposed a system for key 
  793. exchange only; it permits secure exchange of keys in an otherwise 
  794. conventional secret-key system. This system is in use today.
  795.  
  796. Cryptosystems based on mathematical operations on elliptic curves have 
  797. also been proposed [43,56], as have cryptosystems based on discrete 
  798. exponentiation in the finite field GF(2^n). The latter are very fast in 
  799. hardware; however, doubts have been raised about their security because 
  800. the underlying problem may be easier to solve than factoring [64,34]. 
  801. There are also some probabilistic encryption methods [8,32], which have 
  802. the attraction of being resistant to a guessed ciphertext attack (see 
  803. Question 2.5), but at a cost of data expansion. In probabilistic 
  804. encryption, the same plaintext encrypted twice under the same key will 
  805. give, with high probability, two different ciphertexts.
  806.  
  807. For digital signatures, Rabin [68] proposed a system which is provably 
  808. equivalent to factoring; this is an advantage over RSA, where one may 
  809. still have a lingering worry about an attack unrelated to factoring.
  810. Rabin's method is susceptible to a chosen message attack, however, in which 
  811. the attacker tricks the user into signing messages of a special form. Another 
  812. signature scheme, by Fiat and Shamir [31], is based on interactive 
  813. zero-knowledge protocols, but can be adapted for signatures. It is faster 
  814. than RSA and is provably equivalent to factoring, but the signatures are 
  815. much larger than RSA signatures. Other variations, however, lessen the 
  816. necessary signature length; see [17] for references. A system is 
  817. ``equivalent to factoring'' if recovering the private key is provably as 
  818. hard as factoring; forgery may be easier than factoring in some of the 
  819. systems.
  820.  
  821. Advantages of RSA over other public-key cryptosystems include the fact that 
  822. it can be used for both encryption and authentication, and that it has been 
  823. around for many years and has successfully withstood much scrutiny. RSA has 
  824. received far more attention, study, and actual use than any other public-key 
  825. cryptosystem, and thus RSA has more empirical evidence of its security than 
  826. more recent and less scrutinized systems. In fact, a large number of 
  827. public-key cryptosystems which at first appeared secure were later broken; 
  828. see [13] for some case histories. 
  829.  
  830.  
  831. 2.16 Is RSA currently in use today?
  832.  
  833. The use of RSA is undergoing a period of rapid expansion and may become 
  834. ubiquitous within a few years. It is currently used in a wide variety of 
  835. products, platforms and industries around the world. It is found in many 
  836. commercial software products and planned for many more. RSA is built into 
  837. current or planned operating systems by Microsoft, Apple, Sun, and Novell. 
  838. In hardware, RSA can be found in secure telephones, on Ethernet network 
  839. cards, and on smart cards. RSA is also used internally in many institutions, 
  840. including branches of the U.S. government, major corporations, national 
  841. laboratories, and universities.
  842.  
  843. Adoption of RSA seems to be proceeding more quickly for authentication 
  844. (digital signatures) than for privacy (encryption), perhaps in part because 
  845. products for authentication are easier to export than those for privacy (see 
  846. Question 1.6). 
  847.  
  848.  
  849. 2.17 Is RSA an official standard today?
  850.  
  851. RSA is part of many official standards worldwide. The ISO (International
  852. Standards Organization) 9796 standard lists RSA as a compatible 
  853. cryptographic algorithm, as does the Consultative Committee in International 
  854. Telegraphy and Telephony (CCITT) X.509 security standard. RSA is part of 
  855. the Society for Worldwide Interbank Financial Telecommunications (SWIFT) 
  856. standard, the French financial industry's ETEBAC 5 standard, and the ANSI 
  857. X9.31 draft standard for the U.S. banking industry. The Australian key 
  858. management standard, AS2805.6.5.3, also specifies RSA.
  859.  
  860. RSA is found in Internet's proposed PEM (Privacy Enhanced Mail) standard
  861. (see Question 8.7) and the PKCS standard for the software industry 
  862. (see Question 8.9). The OSI Implementors' Workshop (OIW) has issued 
  863. implementers' agreements referring to PKCS and PEM, which each include RSA. 
  864.  
  865. A number of other standards are currently being developed and will 
  866. be announced over the next couple of years; many are expected to include 
  867. RSA as either an endorsed or a recommended system for privacy and/or 
  868. authentication. See [38] for a more comprehensive survey of cryptography 
  869. standards.
  870.  
  871.  
  872. 2.18 Is RSA a de facto standard? Why is a de facto standard important?
  873.  
  874. RSA is the most widely used public-key cryptosystem today and has often
  875. been called a de facto standard. Regardless of the official standards, the 
  876. existence of a de facto standard is extremely important for the development 
  877. of a digital economy. If one public-key system is used everywhere for 
  878. authentication, then signed digital documents can be exchanged between users 
  879. in different nations using different software on different platforms; this
  880. interoperability is necessary for a true digital economy to develop.
  881.  
  882. The lack of secure authentication has been a major obstacle in achieving
  883. the promise that computers would replace paper; paper is still necessary
  884. almost everywhere for contracts, checks, official letters, legal documents,
  885. and identification. With this core of necessary paper transaction, it has not 
  886. been feasible to evolve completely into a society based on electronic 
  887. transactions. Digital signatures are the exact tool necessary to convert 
  888. the most essential paper-based documents to digital electronic media. 
  889. Digital signatures makes it possible, for example, to have leases, wills, 
  890. passports, college transcripts, checks, and voter registration forms that 
  891. exist only in electronic form; any paper version would just be a ``copy'' 
  892. of the electronic original. All of this is enabled by an accepted standard 
  893. for digital signatures.
  894.  
  895. 2.19 Is RSA patented? 
  896.  
  897. RSA is patented under U.S. Patent 4,405,829, issued 9/20/83 and held by
  898. Public Key Partners (PKP), of Sunnyvale, California; the patent expires 17 
  899. years after issue, in 2000. RSA is usually licensed together with other 
  900. public-key cryptography patents (see Question 1.5). PKP has a standard, 
  901. royalty-based licensing policy which can be modified for special 
  902. circumstances. If a software vendor, having licensed the public-key patents, 
  903. incorporates RSA into a commercial product, then anyone who purchases the 
  904. end product has the legal right to use RSA within the context of that 
  905. software. The U.S. government can use RSA without a license because it was 
  906. invented at MIT with partial government funding. RSA is not patented outside 
  907. North America.
  908.  
  909. In North America, a license is needed to ``make, use or sell'' RSA. However,
  910. PKP usually allows free non-commercial use of RSA, with written permission, 
  911. for personal, academic or intellectual reasons. Furthermore, RSA 
  912. Laboratories has made available (in the U.S. and Canada) at no charge a 
  913. collection of cryptographic routines in source code, including the RSA 
  914. algorithm; it can be used, improved and redistributed non-commercially 
  915. (see Question 8.10).
  916.  
  917.  
  918. 2.20 Can RSA be exported from the U.S.?
  919.  
  920. Export of RSA falls under the same U.S. laws as all other cryptographic
  921. products. See Question 1.6 for details.
  922.  
  923. RSA used for authentication is more easily exported than when used for
  924. privacy. In the former case, export is allowed regardless of key (modulus)
  925. size, although the exporter must demonstrate that the product cannot be
  926. easily converted to use for encryption. In the case of RSA used for 
  927. privacy (encryption), the U.S. government generally does not allow
  928. export if the key size exceeds 512 bits. Export policy is currently a
  929. subject of debate, and the export status of RSA may well change in the
  930. next year or two.
  931.  
  932. Regardless of U.S. export policy, RSA is available abroad in non-U.S.
  933. products.
  934.  
  935.  
  936.  
  937.        --------------------------------------------
  938.  
  939. RSA Laboratories is the research and consultation division of RSA Data
  940. Security, Inc., the company founded by the inventors of the RSA
  941. public-key cryptosystem. RSA Laboratories reviews, designs and
  942. implements secure and efficient cryptosystems of all kinds. Its
  943. clients include government agencies, telecommunications companies,
  944. computer manufacturers, software developers, cable TV broadcasters,
  945. interactive video manufacturers, and satellite broadcast companies,
  946. among others.
  947.  
  948. For more information about RSA Laboratories, call or write to 
  949.                         RSA Laboratories
  950.                         100 Marine Parkway
  951.                         Redwood City, CA 94065
  952.                         (415) 595-7703
  953.                         (415) 595-4126 (fax)
  954.  
  955.  
  956.  
  957. PKCS, RSAREF and RSA Laboratories are trademarks of RSA Data
  958. Security, Inc. All other trademarks belong to their respective 
  959. companies.
  960.  
  961. This document is available in ASCII, Postscript, and Latex formats
  962. via anonymous FTP to rsa.com:/pub/faq.
  963.  
  964. Please send comments and corrections to faq-editor@rsa.com.
  965.  
  966.  
  967.  
  968. ===
  969. DISTRIBUTION: How to obtain this document
  970.  
  971. This document has been brought to you in part by CRAM, involved in the
  972. redistribution of valuable information to a wider USENET audience (see
  973. below). The most recent version of this document can be obtained via
  974. the author's instructions above. The following directions apply to 
  975. retrieve the possibly less-current USENET FAQ version.
  976.  
  977.   FTP
  978.   ---
  979.     This FAQ is available from the standard FAQ server rtfm.mit.edu via
  980.     FTP in the directory /pub/usenet/news.answers/cryptography-faq/rsa/
  981.  
  982.   Email
  983.   -----
  984.     Email requests for FAQs go to mail-server@rtfm.mit.edu with commands
  985.     on lines in the message body, e.g. `help' and `index'.
  986.  
  987.   Usenet
  988.   ------
  989.     This FAQ is posted every 21 days to the groups
  990.  
  991.       sci.crypt
  992.       talk.politics.crypto
  993.       alt.security.ripem
  994.       sci.answers
  995.       talk.answers
  996.       alt.answers
  997.       news.answers
  998.  
  999. _ _, _ ___ _, __,  _, _  _, ___ _  _, _, _ _  _, __,  _, _  _ ___ __,
  1000. | |\ | |_ / \ |_)  |\/| / \  |  | / \ |\ | | (_  |_) / \ |  | |_  | )
  1001. | | \| |  \ / | \  |  | |~|  |  | \ / | \| | , ) |   \ / |/\| |   |~\
  1002. ~ ~  ~ ~   ~  ~  ~ ~  ~ ~ ~  ~  ~  ~  ~  ~ ~  ~  ~    ~  ~  ~ ~~~ ~  ~
  1003.  
  1004. ===
  1005. CRAM: The Cyberspatial Reality Advancement Movement
  1006.  
  1007. In an effort to bring valuable information to the masses, and as a
  1008. service to motivated information compilers, a member of CRAM can help
  1009. others unfamiliar with Usenet `publish' their documents for
  1010. widespread dissemination via the FAQ structure, and act as a
  1011. `sponsor' knowledgable in the submissions process. This document is
  1012. being distributed under this arrangement.
  1013.  
  1014. We have found these compilations tend to appear on various mailing
  1015. lists and are valuable enough to deserve wider distribution. If you
  1016. know of an existing compilation of Internet information that is not
  1017. currently a FAQ, please contact us and we may `sponsor' it. The
  1018. benefits to the author include:
  1019.  
  1020. - use of the existing FAQ infrastructure for distribution:
  1021.   - automated mail server service
  1022.   - FTP archival
  1023.   - automated posting
  1024.  
  1025. - a far wider audience that can improve the quality, accuracy, and 
  1026.   coverage of the document enormously through email feedback
  1027.  
  1028. - potential professional inquiries for the use of your document in 
  1029.   other settings, such as newsletters, books, etc.
  1030.  
  1031. - with us as your sponsor, we will also take care of the 
  1032.   technicalities in the proper format of the posted version and 
  1033.   updating procedures, leaving you free of the `overhead' to focus on 
  1034.   the basic updates alone
  1035.  
  1036. The choice of who we `sponsor' is entirely arbitrary. You always have
  1037. the option of handling the submission process yourself.  See the FAQ
  1038. submission guidelines FAQ in news.answers. 
  1039.  
  1040. For information, send mail to <tmp@netcom.com>.
  1041.  
  1042.  \   \   \   \   \   \   \   \   \   |   /   /   /   /   /   /   /   /   /   /
  1043.           _______       ________          _____        _____  _____
  1044.          ///   \\\      |||   \\\        /// \\\       |||\\\///|||
  1045.         |||     ~~      |||   ///       |||   |||      ||| \\// |||
  1046.         |||     __      |||~~~\\\       |||~~~|||      |||  ~~  |||
  1047.          \\\   ///      |||    \\\      |||   |||      |||      |||
  1048.           ~~~~~~~       ~~~     ~~~     ~~~   ~~~      ~~~      ~~~
  1049.  /   /   /   /   /   /   /   /   /   |   \   \   \   \   \   \   \   \   \   \
  1050.  
  1051. C y b e r s p a t i a l  R e a l i t y  A d v a n c e m e n t  M o v e m e n t
  1052.  
  1053. * CIVILIZING CYBERSPACE: send `info cypherwonks' to majordomo@lists.eunet.fi *
  1054.  
  1055. From faq-editor@rsa.com Mon Aug 22 19:45:06 1994
  1056. From: faq-editor@rsa.com
  1057. Newsgroups: sci.crypt,talk.politics.crypto,alt.security.ripem,sci.answers,talk.answers,alt.answers,news.answers
  1058. Subject: RSA Cryptography Today FAQ (2/3)
  1059. Supersedes: <cryptography-faq/rsa/part2_775371303@rtfm.mit.edu>
  1060. Followup-To: poster
  1061. Date: 19 Aug 1994 02:26:50 GMT
  1062. Organization: none
  1063. Reply-To: faq-editor@rsa.com
  1064. NNTP-Posting-Host: bloom-picayune.mit.edu
  1065. X-Last-Updated: 1994/06/13
  1066. Originator: faqserv@bloom-picayune.MIT.EDU
  1067.  
  1068. Archive-name: cryptography-faq/rsa/part2
  1069. Last-modified: 93/09/20
  1070. Version: 2.0
  1071. Distribution-agent: tmp@netcom.com
  1072.  
  1073.  
  1074. (This document has been brought to you in part by CRAM.  See the
  1075. bottom for more information, including instructions on how to
  1076. obtain updates.)
  1077.  
  1078. ===
  1079.  
  1080.  
  1081.                           Answers To
  1082.                  FREQUENTLY ASKED QUESTIONS
  1083.                  About Today's Cryptography
  1084.  
  1085.  
  1086.  
  1087.                           Paul Fahn
  1088.                       RSA Laboratories
  1089.                      100 Marine Parkway
  1090.                    Redwood City, CA  94065
  1091.  
  1092.  
  1093.  
  1094.    Copyright (c) 1993 RSA Laboratories, a division of RSA Data Security,
  1095.       Inc. All rights reserved.
  1096.  
  1097.    Version 2.0, draft 2f
  1098.    Last update: September 20, 1993
  1099.  
  1100.  
  1101.  
  1102. ------------------------------------------------------------------------
  1103.                          Table of Contents
  1104.  
  1105. [ part 2 ]
  1106.  
  1107. 3 Key Management 
  1108.        3.1  What key management issues are involved in public-key 
  1109.             cryptography? 
  1110.        3.2  Who needs a key? 
  1111.        3.3  How does one get a key pair? 
  1112.        3.4  Should a public key or private key be shared among users? 
  1113.        3.5  What are certificates? 
  1114.        3.6  How are certificates used? 
  1115.        3.7  Who issues certificates and how? 
  1116.        3.8  What is a CSU, or, How do certifying authorities store their 
  1117.             private keys? 
  1118.        3.9  Are certifying authorities susceptible to attack? 
  1119.        3.10  What if the certifying authority's key is lost or compromised? 
  1120.        3.11  What are Certificate Revocation Lists (CRLs)? 
  1121.        3.12  What happens when a key expires? 
  1122.        3.13  What happens if I lose my private key? 
  1123.        3.14  What happens if my private key is compromised? 
  1124.        3.15  How should I store my private key? 
  1125.        3.16  How do I find someone else's public key? 
  1126.        3.17  How can signatures remain valid beyond the expiration dates of 
  1127.              their keys, or, How do you verify a 20-year-old signature? 
  1128.        3.18  What is a digital time-stamping service? 
  1129.  
  1130. 4 Factoring and Discrete Log 
  1131.        4.1  What is a one-way function? 
  1132.        4.2  What is the significance of one-way functions for cryptography? 
  1133.        4.3  What is the factoring problem? 
  1134.        4.4  What is the significance of factoring in cryptography? 
  1135.        4.5  Has factoring been getting easier? 
  1136.        4.6  What are the best factoring methods in use today? 
  1137.        4.7  What are the prospects for theoretical factoring breakthroughs? 
  1138.        4.8  What is the RSA Factoring Challenge? 
  1139.        4.9  What is the discrete log problem? 
  1140.        4.10  Which is easier, factoring or discrete log? 
  1141.  
  1142. 5 DES 
  1143.        5.1  What is DES? 
  1144.        5.2  Has DES been broken? 
  1145.        5.3  How does one use DES securely? 
  1146.        5.4  Can DES be exported from the U.S.? 
  1147.        5.5  What are the alternatives to DES? 
  1148.        5.6  Is DES a group? 
  1149.  
  1150.  
  1151. --------------------------------------------------------------------
  1152.  
  1153.  
  1154.  
  1155. 3 Key Management
  1156.  
  1157. 3.1 What key management issues are involved in public-key cryptography?
  1158.  
  1159. Secure methods of key management are extremely important. In practice,
  1160. most attacks on public-key systems will probably be aimed at the key 
  1161. management levels, rather than at the cryptographic algorithm itself. 
  1162. The key management issues mentioned here are discussed in detail in 
  1163. later questions.
  1164.  
  1165. Users must be able to obtain securely a key pair suited to their efficiency 
  1166. and security needs. There must be a way to look up other people's public 
  1167. keys and to publicize one's own key. Users must have confidence in the 
  1168. legitimacy of others' public keys; otherwise an intruder can either change 
  1169. public keys listed in a directory, or impersonate another user. Certificates 
  1170. are used for this purpose. Certificates must be unforgeable, obtainable in a 
  1171. secure manner, and processed in such a way that an intruder cannot misuse 
  1172. them. The issuance of certificates must proceed in a secure way, impervious 
  1173. to attack. If someone's private key is lost or compromised, others must be 
  1174. made aware of this, so that they will no longer encrypt messages under the 
  1175. invalid public key nor accept messages signed with the invalid private key. 
  1176. Users must be able to store their private keys securely, so that no intruder 
  1177. can find it, yet the keys must be readily accessible for legitimate use. Keys 
  1178. need to be valid only until a specified expiration date. The expiration date 
  1179. must be chosen properly and publicized securely. Some documents need to have 
  1180. verifiable signatures beyond the time when the key used to sign them has 
  1181. expired.
  1182.  
  1183. Although most of these key management issues arise in any public-key 
  1184. cryptosystem, for convenience they are discussed here in the context of RSA.
  1185.  
  1186.  
  1187. 3.2 Who needs a key?
  1188.  
  1189. Anyone who wishes to sign messages or to receive encrypted messages must
  1190. have a key pair. People may have more than one key. For example, someone
  1191. might have a key affiliated with his or her work and a separate key for
  1192. personal use. Other entities will also have keys, including electronic 
  1193. entities such as modems, workstations, and printers, as well as 
  1194. organizational entities such as a corporate department, a hotel 
  1195. registration desk, or a university registrar's office. 
  1196.  
  1197.  
  1198. 3.3 How does one get a key pair? 
  1199.  
  1200. Each user should generate his or her own key pair. It may be tempting within 
  1201. an organization to have a single site that generates keys for all members who 
  1202. request one, but this is a security risk because it involves the transmission 
  1203. of private keys over a network as well as catastrophic consequences if an 
  1204. attacker infiltrates the key-generation site. Each node on a network should be
  1205. capable of local key generation, so that private keys are never transmitted 
  1206. and no external key source need be trusted. Of course, the local key generation
  1207. software must itself be trustworthy. Secret-key authentication systems, such 
  1208. as Kerberos, often do not allow local key generation but instead use a 
  1209. central server to generate keys.
  1210.  
  1211. Once generated, a user must register his or her public key with some
  1212. central administration, called a certifying authority. The certifying 
  1213. authority returns to the user a certificate attesting to the veracity of 
  1214. the user's public key along with other information (see Questions 3.5 
  1215. and following). Most users should not obtain more than one certificate for
  1216. the same key, in order to simplify various bookkeeping tasks associated
  1217. with the key.
  1218.  
  1219.  
  1220. 3.4 Should a public key or private key be shared among users?
  1221.  
  1222. In RSA, each person should have a unique modulus and private exponent, i.e., 
  1223. a unique private key. The public exponent, on the other hand, can be common 
  1224. to a group of users without security being compromised. Some public exponents 
  1225. in common use today are 3 and 2^{16}+1; because these numbers are small, 
  1226. the public-key operations (encryption and signature verification) are fast 
  1227. relative to the private key operations (decryption and signing). If one 
  1228. public exponent becomes a standard, software and hardware can be optimized 
  1229. for that value.
  1230.  
  1231. In public-key systems based on discrete logarithms, such as ElGamal,
  1232. Diffie-Hellman, or DSS, it has often been suggested that a group of 
  1233. people should share a modulus. This would make breaking a key more
  1234. attractive to an attacker, however, because one could break every
  1235. key with only slightly more effort than it would take to break a
  1236. single key. To an attacker, therefore, the average cost to break a 
  1237. key is much lower with a common modulus than if every key has a distinct 
  1238. modulus. Thus one should be very cautious about using a common modulus; 
  1239. if a common modulus is chosen, it should be very large. 
  1240.  
  1241.  
  1242. 3.5 What are certificates?
  1243.  
  1244. Certificates are digital documents attesting to the binding of a public key 
  1245. to an individual or other entity. They allow verification of the claim that 
  1246. a given public key does in fact belong to a given individual. Certificates 
  1247. help prevent someone from using a phony key to impersonate someone else.
  1248.  
  1249. In their simplest form, certificates contain a public key and a name. As
  1250. commonly used, they also contain the expiration date of the key, the name 
  1251. of the certifying authority that issued the certificate, the serial number 
  1252. of the certificate, and perhaps other information. Most importantly, it 
  1253. contains the digital signature of the certificate issuer. The most widely 
  1254. accepted format for certificates is defined by the CCITT X.509 international 
  1255. standard [19]; thus certificates can be read or written by any application 
  1256. complying with X.509. Further refinements are found in the PKCS set of 
  1257. standards (see Question 8.9), and the PEM standard (see Question 8.7). A 
  1258. detailed discussion of certificate format can also be found in Kent [40].
  1259.  
  1260. A certificate is issued by a certifying authority (see Question 3.7) 
  1261. and signed with the certifying authority's private key.
  1262.  
  1263.  
  1264. 3.6 How are certificates used?
  1265.  
  1266. A certificate is displayed in order to generate confidence in the 
  1267. legitimacy of a public key. Someone verifying a signature can also 
  1268. verify the signer's certificate, to insure that no forgery or false 
  1269. representation has occurred. These steps can be performed with greater 
  1270. or lesser rigor depending on the context. 
  1271.  
  1272. The most secure use of authentication involves enclosing one or more 
  1273. certificates with every signed message. The receiver of the message
  1274. would verify the certificate using the certifying authority's public
  1275. key and, now confident of the public key of the sender, verify the message's 
  1276. signature. There may be two or more certificates enclosed with the message, 
  1277. forming a hierarchical chain, wherein one certificate testifies to the 
  1278. authenticity of the previous certificate. At the end of a certificate 
  1279. hierarchy is a top-level certifying authority, which is trusted without a 
  1280. certificate from any other certifying authority. The public key of the 
  1281. top-level certifying authority must be independently known, for example by 
  1282. being widely published.
  1283.  
  1284. The more familiar the sender is to the receiver of the message, the less 
  1285. need there is to enclose, and to verify, certificates. If Alice sends 
  1286. messages to Bob every day, Alice can enclose a certificate chain on the 
  1287. first day, which Bob verifies. Bob thereafter stores Alice's public key 
  1288. and no more certificates or certificate verifications are necessary. A sender 
  1289. whose company is known to the receiver may need to enclose only one 
  1290. certificate (issued by the company), whereas a sender whose company is 
  1291. unknown to the receiver may need to enclose two certificates. A good rule of 
  1292. thumb is to enclose just enough of a certificate chain so that the issuer of 
  1293. the highest level certificate in the chain is well-known to the receiver.
  1294.  
  1295. According to the PKCS standards for public-key cryptography (see Question
  1296. 8.9), every signature points to a certificate that validates the public 
  1297. key of the signer. Specifically, each signature contains the name of the 
  1298. issuer of the certificate and the serial number of the certificate. Thus 
  1299. even if no certificates are enclosed with a message, a verifier can still 
  1300. use the certificate chain to check the status of the public key.
  1301.  
  1302.  
  1303. 3.7 Who issues certificates and how?
  1304.  
  1305. Certificates are issued by a certifying authority (CA), which can be any 
  1306. trusted central administration willing to vouch for the identities of those 
  1307. to whom it issues certificates. A company may issue certificates to its 
  1308. employees, a university to its students, a town to its citizens. In 
  1309. order to prevent forged certificates, the CA's public key must be trustworthy: 
  1310. a CA must either publicize its public key or provide a certificate from a 
  1311. higher-level CA attesting to the validity of its public key. The latter
  1312. solution gives rise to hierarchies of CAs.
  1313.  
  1314. Certificate issuance proceeds as follows. Alice generates her own key 
  1315. pair and sends the public key to an appropriate CA with some proof of her 
  1316. identification. The CA checks the identification and takes any other steps
  1317. necessary to assure itself that the request really did come from Alice, and 
  1318. then sends her a certificate attesting to the binding between Alice and her 
  1319. public key, along with a hierarchy of certificates verifying the CA's public 
  1320. key. Alice can present this certificate chain whenever desired in order to 
  1321. demonstrate the legitimacy of her public key. 
  1322.  
  1323. Since the CA must check for proper identification, organizations will find 
  1324. it convenient to act as a CA for its own members and employees. There will 
  1325. also be CAs that issue certificates to unaffiliated individuals.
  1326.  
  1327. Different CAs may issue certificates with varying levels of identification 
  1328. requirements. One CA may insist on seeing a driver's license, another may 
  1329. want the certificate request form to be notarized, yet another may want 
  1330. fingerprints of anyone requesting a certificate. Each CA should publish 
  1331. its own identification requirements and standards, so that verifiers 
  1332. can attach the appropriate level of confidence in the certified name-key 
  1333. bindings.
  1334.  
  1335. An example of a certificate-issuing protocol is Apple Computer's Open 
  1336. Collaborative Environment (OCE). Apple OCE users can generate a key 
  1337. pair and then request and receive a certificate for the public key; the
  1338. certificate request must be notarized.
  1339.  
  1340.  
  1341. 3.8 What is a CSU, or, How do certifying authorities store their private keys?
  1342.  
  1343. It is extremely important that private keys of certifying authorities are 
  1344. stored securely, because compromise would enable undetectable forgeries. 
  1345. One way to achieve the desired security is to store the key in a tamperproof
  1346. box; such a box is called a Certificate Signing Unit, or CSU. The CSU would, 
  1347. preferably, destroy its contents if ever opened, and be shielded against 
  1348. attacks using electromagnetic radiation. Not even employees of the certifying 
  1349. authority should have access to the private key itself, but only the ability 
  1350. to use the private key in the process of issuing certificates. 
  1351.  
  1352. There are many possible designs for CSUs; here is a description of one design
  1353. found in some current implementations. The CSU is activated by a set of data 
  1354. keys, which are physical keys capable of storing digital information. The 
  1355. data keys use secret-sharing technology such that several people must all 
  1356. use their data keys to activate the CSU. This prevents one disgruntled CA 
  1357. employee from producing phony certificates. 
  1358.  
  1359. Note that if the CSU is destroyed, say in a fire, no security is compromised.
  1360. Certificates signed by the CSU are still valid, as long as the verifier uses 
  1361. the correct public key. Some CSUs will be manufactured so that a lost private 
  1362. key can be restored into a new CSU. See Question 3.10 for discussion of 
  1363. lost CA private keys.
  1364.  
  1365. Bolt, Beranek, and Newman (BBN) currently sells a CSU, and RSA Data Security
  1366. sells a full-fledged certificate issuing system built around the BBN CSU.
  1367.  
  1368.  
  1369. 3.9 Are certifying authorities susceptible to attack?
  1370.  
  1371. One can think of many attacks aimed at the certifying authority, which must
  1372. be prepared against them.
  1373.  
  1374. Consider the following attack. Suppose Bob wishes to impersonate Alice. 
  1375. If Bob can convincingly sign messages as Alice, he can send a message to 
  1376. Alice's bank saying ``I wish to withdraw $10,000 from my account. Please 
  1377. send me the money.'' To carry out this attack, Bob generates a key pair and 
  1378. sends the public key to a certifying authority saying ``I'm Alice. Here is 
  1379. my public key. Please send me a certificate.'' If the CA is fooled and sends 
  1380. him such a certificate, he can then fool the bank, and his attack will 
  1381. succeed. In order to prevent such an attack the CA must verify that a 
  1382. certificate request did indeed come from its purported author, i.e., it must 
  1383. require sufficient evidence that it is actually Alice who is requesting the 
  1384. certificate. The CA may, for example, require Alice to appear in person and 
  1385. show a birth certificate. Some CAs may require very little identification, 
  1386. but the bank should not honor messages authenticated with such low-assurance 
  1387. certificates. Every CA must publicly state its identification requirements 
  1388. and policies; others can then attach an appropriate level of confidence to 
  1389. the certificates.
  1390.  
  1391. An attacker who discovers the private key of a certifying authority could 
  1392. then forge certificates. For this reason, a certifying authority must take 
  1393. extreme precautions to prevent illegitimate access to its private key. The 
  1394. private key should be kept in a high-security box, known as a Certificate 
  1395. Signing Unit, or CSU (see Question 3.8).
  1396.  
  1397. The certifying authority's public key might be the target of an extensive 
  1398. factoring attack. For this reason, CAs should use very long keys, preferably 
  1399. 1000 bits or longer, and should also change keys regularly. Top-level 
  1400. certifying authorities are exceptions: it may not be practical for them to 
  1401. change keys frequently because the key may be written into software used 
  1402. by a large number of verifiers.
  1403.  
  1404. In another attack, Alice bribes Bob, who works for the certifying authority, 
  1405. to issue to her a certificate in the name of Fred. Now Alice can send 
  1406. messages signed in Fred's name and anyone receiving such a message will 
  1407. believe it authentic because a full and verifiable certificate chain will 
  1408. accompany the message. This attack can be hindered by requiring the 
  1409. cooperation of two (or more) employees to generate a certificate; the 
  1410. attacker now has to bribe two employees rather than one. For example, in 
  1411. some of today's CSUs, three employees must each insert a data key containing 
  1412. secret information in order to authorize the CSU to generate certificates. 
  1413. Unfortunately, there may be other ways to generate a forged certificate by 
  1414. bribing only one employee. If each certificate request is checked by only 
  1415. one employee, that one employee can be bribed and slip a false request into 
  1416. a stack of real certificate requests. Note that a corrupt employee cannot 
  1417. reveal the certifying authority's private key, as long as it is properly 
  1418. stored.
  1419.  
  1420. Another attack involves forging old documents. Alice tries to factor the 
  1421. modulus of the certifying authority. It takes her 15 years, but she finally 
  1422. succeeds, and she now has the old private key of the certifying authority. 
  1423. The key has long since expired, but she can forge a certificate dated 15 
  1424. years ago attesting to a phony public key of some other person, say Bob; she 
  1425. can now forge a document with a signature of Bob dated 15 year ago, perhaps
  1426. a will leaving everything to Alice. The underlying issue raised by this 
  1427. attack is how to authenticate a signed document dated many years ago; this 
  1428. issue is discussed in Question 3.17.
  1429.  
  1430. Note that these attacks on certifying authorities do not threaten the 
  1431. privacy of messages between users, as might result from an attack on a 
  1432. secret-key distribution center.
  1433.  
  1434.  
  1435. 3.10 What if the certifying authority's key is lost or compromised? 
  1436.  
  1437. If the certifying authority's key is lost or destroyed but not compromised, 
  1438. certificates signed with the old key are still valid, as long as the verifier
  1439. knows to use the old public key to verify the certificate. 
  1440.  
  1441. In some CSU designs, encrypted backup copies of the CA's private key are
  1442. kept. A CA which loses its key can then restore it by loading the encrypted 
  1443. backup into the CSU, which can decrypt it using some unique information 
  1444. stored inside the CSU; the encrypted backup can only be decrypted using the 
  1445. CSU. If the CSU itself is destroyed, the manufacturer may be able to supply 
  1446. another with the same internal information, thus allowing recovery of the key. 
  1447.  
  1448. A compromised CA key is a much more dangerous situation. An attacker who 
  1449. discovers a certifying authority's private key can issue phony certificates 
  1450. in the name of the certifying authority, which would enable undetectable 
  1451. forgeries; for this reason, all precautions must be taken to prevent 
  1452. compromise, including those outlined in Questions 3.8 and 3.9. If a 
  1453. compromise does occur, the CA must immediately cease issuing certificates
  1454. under its old key and change to a new key. If it is suspected that some phony 
  1455. certificates were issued, all certificates should be recalled, and then 
  1456. reissued with a new CA key. These measures could be relaxed somewhat if 
  1457. certificates were registered with a digital time-stamping service (see 
  1458. Question 3.18). Note that compromise of a CA key does not invalidate users'
  1459. keys, but only the certificates that authenticate them. Compromise of a 
  1460. top-level CA's key should be considered catastrophic, since the key may 
  1461. be built into applications that verify certificates.
  1462.  
  1463.  
  1464. 3.11 What are Certificate Revocation Lists (CRLs)?
  1465.  
  1466. A Certificate Revocation List (CRL) is a list of public keys that have been 
  1467. revoked before their scheduled expiration date. There are several reasons why 
  1468. a key might need to be revoked and placed on a CRL. A key might have been 
  1469. compromised. A key might be used professionally by an individual for 
  1470. a company; for example, the official name associated with a key might be 
  1471. ``Alice Avery, Vice President, Argo Corp.'' If Alice were fired, her company 
  1472. would not want her to be able to sign messages with that key and therefore 
  1473. the company would place the key on the CRL. 
  1474.  
  1475. When verifying a signature, one can check the relevant CRL to make sure
  1476. the signer's key has not been revoked. Whether it is worth the time to 
  1477. perform this check depends on the importance of the signed document. 
  1478.  
  1479. CRLs are maintained by certifying authorities (CAs) and provide information 
  1480. about revoked keys originally certified by the CA. CRLs only list current 
  1481. keys, since expired keys should not be accepted in any case; when a revoked 
  1482. key is past its original expiration date it is removed from the CRL. Although 
  1483. CRLs are maintained in a distributed manner, there may be central 
  1484. repositories for CRLs, that is, sites on networks containing the latest CRLs 
  1485. >from many organizations. An institution like a bank might want an in-house 
  1486. CRL repository to make CRL searches feasible on every transaction.
  1487.  
  1488.  
  1489. 3.12 What happens when a key expires?
  1490.  
  1491. In order to guard against a long-term factoring attack, every key must 
  1492. have an expiration date after which it is no longer valid. The time to 
  1493. expiration must therefore be much shorter than the expected factoring time, 
  1494. or equivalently, the key length must be long enough to make the chances of 
  1495. factoring before expiration extremely small. The validity period for a key 
  1496. pair may also depend on the circumstances in which the key will be used, 
  1497. although there will also be a standard period. The validity period, together
  1498. with the value of the key and the estimated strength of an expected attacker, 
  1499. then determines the appropriate key size.
  1500.  
  1501. The expiration date of a key accompanies the public key in a certificate
  1502. or a directory listing. The signature verification program should check 
  1503. for expiration and should not accept a message signed with an expired key. 
  1504. This means that when one's own key expires, everything signed with it will
  1505. no longer be considered valid. Of course, there will be cases where it is 
  1506. important that a signed document be considered valid for a much longer period 
  1507. of time; Question 3.17 discusses ways to achieve this.
  1508.  
  1509. After expiration, the user chooses a new key, which should be longer than 
  1510. the old key, perhaps by several digits, to reflect both the performance 
  1511. increase of computer hardware and any recent improvements in factoring 
  1512. algorithms. Recommended key length schedules will likely be published. A user 
  1513. may recertify a key that has expired, if it is sufficiently long and has not 
  1514. been compromised. The certifying authority would then issue a new certificate 
  1515. for the same key, and all new signatures would point to the new certificate 
  1516. instead of the old. However, the fact that computer hardware continues to 
  1517. improve argues for replacing expired keys with new, longer keys every few 
  1518. years. Key replacement enables one to take advantage of the hardware 
  1519. improvements to increase the security of the cryptosystem. Faster hardware 
  1520. has the effect of increasing security, perhaps vastly, but only if key 
  1521. lengths are increased regularly (see Question 4.5).
  1522.  
  1523.  
  1524. 3.13 What happens if I lose my private key?
  1525.  
  1526. If your private key is lost or destroyed, but not compromised, you can no 
  1527. longer sign or decrypt messages, but anything previously signed with the 
  1528. lost key is still valid. This can happen, for example, if you forget the 
  1529. password used to access your key, or if the disk on which the key is stored 
  1530. is damaged. You need to choose a new key right away, to minimize the number 
  1531. of messages people send you encrypted under your old key, messages which you 
  1532. can no longer read. 
  1533.  
  1534.  
  1535. 3.14 What happens if my private key is compromised?
  1536.  
  1537. If your private key is compromised, that is, if you suspect an attacker may 
  1538. have obtained your private key, then you must assume that some enemy can
  1539. read encrypted messages sent to you and forge your name on documents. The 
  1540. seriousness of these consequences underscores the importance of protecting 
  1541. your private key with extremely strong mechanisms (see Question 3.15).
  1542.  
  1543. You must immediately notify your certifying authority and have your old key 
  1544. placed on a Certificate Revocation List (see Question 3.11); this will 
  1545. inform people that the key has been revoked. Then choose a new key and obtain
  1546. the proper certificates for it. You may wish to use the new key to re-sign 
  1547. documents that you had signed with the compromised key; documents that had 
  1548. been time-stamped as well as signed might still be valid. You should also 
  1549. change the way you store your private key, to prevent compromise of the new 
  1550. key.
  1551.  
  1552.  
  1553. 3.15 How should I store my private key?
  1554.  
  1555. Private keys must be stored securely, since forgery and loss of privacy 
  1556. could result from compromise. The private key should never be stored 
  1557. anywhere in plaintext form. The simplest storage mechanism is to encrypt 
  1558. the private key under a password and store the result on a disk. Of course, 
  1559. the password itself must be maintained with high security, not written down 
  1560. and not easily guessed. Storing the encrypted key on a disk that is not 
  1561. accessible through a computer network, such as a floppy disk or a local 
  1562. hard disk, will make some attacks more difficult. Ultimately, private keys 
  1563. may be stored on portable hardware, such as a smart card. Furthermore, a 
  1564. challenge-response protocol will be more secure than simple password access. 
  1565. Users with extremely high security needs, such as certifying authorities, 
  1566. should use special hardware devices to protect their keys (see Question 
  1567. 3.8).
  1568.  
  1569.  
  1570. 3.16 How do I find someone else's public key?
  1571.  
  1572. Suppose you want to find Bob's public key. There are several possible ways.
  1573. You could call him up and ask him to send you his public key via e-mail; you 
  1574. could request it via e-mail as well. Certifying authorities may provide
  1575. directory services; if Bob works for company Z, look in the directory kept 
  1576. by Z's certifying authority. Directories must be secure against unauthorized 
  1577. tampering, so that users can be confident that a public key listed in the 
  1578. directory actually belongs to the person listed. Otherwise, you might send 
  1579. private encrypted information to the wrong person.
  1580.  
  1581. Eventually, full-fledged directories will arise, serving as online white or 
  1582. yellow pages. If they are compliant with CCITT X.509 standards [19], the 
  1583. directories will contain certificates as well as public keys; the presence 
  1584. of certificates will lower the directories' security needs.
  1585.  
  1586.  
  1587. 3.17 How can signatures remain valid beyond the expiration dates of their
  1588.     keys, or, How do you verify a 20-year-old signature?
  1589.  
  1590. Normally, a key expires after, say, two years and a document signed with an 
  1591. expired key should not be accepted. However, there are many cases where 
  1592. it is necessary for signed documents to be regarded as legally valid 
  1593. for much longer than two years; long-term leases and contracts are examples. 
  1594. How should these cases be handled? Many solutions have been suggested but 
  1595. it is unclear which will prove the best. Here are some possibilities.
  1596.  
  1597. One can have special long-term keys as well as the normal two-year keys. 
  1598. Long-term keys should have much longer modulus lengths and be stored 
  1599. more securely than two-year keys. If a long-term key expires in 50 
  1600. years, any document signed with it would remain valid within that time. 
  1601. A problem with this method is that any compromised key must remain on the 
  1602. relevant CRL until expiration (see Question 3.11); if 50-year keys are 
  1603. routinely placed on CRLs, the CRLs could grow in size to unmanageable 
  1604. proportions. This idea can be modified as follows. Register the long-term 
  1605. key by the normal procedure, i.e., for two years. At expiration time, if 
  1606. it has not been compromised, the key can be recertified, that is, issued 
  1607. a new certificate by the certifying authority, so that the key will be 
  1608. valid for another two years. Now a compromised key only needs to be kept 
  1609. on a CRL for at most two years, not fifty. 
  1610.  
  1611. One problem with the previous method is that someone might try to 
  1612. invalidate a long-term contract by refusing to renew his key. This 
  1613. problem can be circumvented by registering the contract with a digital 
  1614. time-stamping service (see Question 3.18) at the time it is originally 
  1615. signed. If all parties to the contract keep a copy of the time-stamp, 
  1616. then each can prove that the contract was signed with valid keys. In 
  1617. fact, the time-stamp can prove the validity of a contract even if one 
  1618. signer's key gets compromised at some point after the contract was 
  1619. signed. This time-stamping solution can work with all signed digital 
  1620. documents, not just multi-party contracts.
  1621.  
  1622.  
  1623. 3.18 What is a digital time-stamping service?
  1624.  
  1625. A digital time-stamping service (DTS) issues time-stamps which associate 
  1626. a date and time with a digital document in a cryptographically strong way. 
  1627. The digital time-stamp can be used at a later date to prove that an 
  1628. electronic document existed at the time stated on its time-stamp. For 
  1629. example, a physicist who has a brilliant idea can write about it with
  1630. a word processor and have the document time-stamped. The time-stamp and
  1631. document together can later prove that the scientist deserves the Nobel 
  1632. Prize, even though an arch rival may have been the first to publish.
  1633.  
  1634. Here's one way such a system could work. Suppose Alice signs a document 
  1635. and wants it time-stamped. She computes a message digest of the document 
  1636. using a secure hash function (see Question 8.2) and then sends the 
  1637. message digest (but not the document itself) to the DTS, which sends her in 
  1638. return a digital time-stamp consisting of the message digest, the date and 
  1639. time it was received at the DTS, and the signature of the DTS. Since the 
  1640. message digest does not reveal any information about the content of the 
  1641. document, the DTS cannot eavesdrop on the documents it time-stamps. Later, 
  1642. Alice can present the document and time-stamp together to prove when the
  1643. document was written. A verifier computes the message digest of the document, 
  1644. makes sure it matches the digest in the time-stamp, and then verifies the 
  1645. signature of the DTS on the time-stamp.
  1646.  
  1647. To be reliable, the time-stamps must not be forgeable. Consider the
  1648. requirements for a DTS of the type just described. First, the DTS itself 
  1649. must have a long key if we want the time-stamps to be reliable for, say,
  1650. several decades. Second, the private key of the DTS must be stored with 
  1651. utmost security, as in a tamperproof box. Third, the date and time must 
  1652. come from a clock, also inside the tamperproof box, which cannot be reset 
  1653. and which will keep accurate time for years or perhaps for decades. Fourth, 
  1654. it must be infeasible to create time-stamps without using the apparatus 
  1655. in the tamperproof box.
  1656.  
  1657. A cryptographically strong DTS using only software [4] has been 
  1658. implemented by Bellcore; it avoids many of the requirements just 
  1659. described, such as tamperproof hardware. The Bellcore DTS essentially 
  1660. combines hash values of documents into data structures called binary 
  1661. trees, whose ``root'' values are periodically published in the newspaper. 
  1662. A time-stamp consists of a set of hash values which allow a verifier 
  1663. to recompute the root of the tree. Since the hash functions are one-way 
  1664. (see Question 8.2), the set of validating hash values cannot be forged.
  1665. The time associated with the document by the time-stamp is the date of 
  1666. publication.
  1667.  
  1668. The use of a DTS would appear to be extremely important, if not essential, 
  1669. for maintaining the validity of documents over many years (see Question 
  1670. 3.17). Suppose a landlord and tenant sign a twenty-year lease. The public 
  1671. keys used to sign the lease will expire after, say, two years; solutions 
  1672. such as recertifying the keys or resigning every two years with new keys 
  1673. require the cooperation of both parties several years after the original 
  1674. signing. If one party becomes dissatisfied with the lease, he or she may 
  1675. refuse to cooperate. The solution is to register the lease with the DTS 
  1676. at the time of the original signing; both parties would then receive a 
  1677. copy of the time-stamp, which can be used years later to enforce the 
  1678. integrity of the original lease.
  1679.  
  1680. In the future, it is likely that a DTS will be used for everything
  1681. >from long-term corporate contracts to personal diaries and letters.
  1682. Today, if an historian discovers some lost letters of Mark Twain, their
  1683. authenticity is checked by physical means. But a similar find 100 years
  1684. >from now may consist of an author's computer files; digital time-stamps 
  1685. may be the only way to authenticate the find.
  1686.  
  1687. 4 Factoring and Discrete Log
  1688.  
  1689. 4.1 What is a one-way function?
  1690.  
  1691. A one-way function is a mathematical function that is significantly
  1692. easier to perform in one direction (the forward direction) than in the 
  1693. opposite direction (the inverse direction). One might, for example, 
  1694. compute the function in minutes but only be able to compute the inverse 
  1695. in months or years. A trap-door one-way function is a one-way function
  1696. where the inverse direction is easy if you know a certain piece of
  1697. information (the trap door), but difficult otherwise.
  1698.  
  1699.  
  1700. 4.2 What is the significance of one-way functions for cryptography?
  1701.  
  1702. Public-key cryptosystems are based on (presumed) trap-door one-way 
  1703. functions. The public key gives information about the particular instance 
  1704. of the function; the private key gives information about the trap door. 
  1705. Whoever knows the trap door can perform the function easily in both
  1706. directions, but anyone lacking the trap door can perform the function only 
  1707. in the forward direction. The forward direction is used for encryption and 
  1708. signature verification; the inverse direction is used for decryption and 
  1709. signature generation.
  1710.  
  1711. In almost all public-key systems, the size of the key corresponds to the 
  1712. size of the inputs to the one-way function; the larger the key, the greater
  1713. the difference between the efforts necessary to compute the function in the 
  1714. forward and inverse directions (for someone lacking the trap door). For a 
  1715. digital signature to be secure for years, for example, it is necessary to 
  1716. use a trap-door one-way function with inputs large enough that someone 
  1717. without the trap door would need many years to compute the inverse function.
  1718.  
  1719. All practical public-key cryptosystems are based on functions that are 
  1720. believed to be one-way, but have not been proven to be so. This means that 
  1721. it is theoretically possible that an algorithm will be discovered that can 
  1722. compute the inverse function easily without a trap door; this development 
  1723. would render any cryptosystem based on that one-way function insecure and 
  1724. useless. 
  1725.  
  1726.  
  1727. 4.3 What is the factoring problem?
  1728.  
  1729. Factoring is the act of splitting an integer into a set of smaller integers
  1730. (factors) which, when multiplied together, form the original integer. 
  1731. For example, the factors of 15 are 3 and 5; the factoring problem is 
  1732. to find 3 and 5 when given 15. Prime factorization requires splitting an 
  1733. integer into factors that are prime numbers; every integer has a unique 
  1734. prime factorization. Multiplying two prime integers together is easy, but 
  1735. as far as we know, factoring the product is much more difficult. 
  1736.  
  1737. 4.4 What is the significance of factoring in cryptography?
  1738.  
  1739. Factoring is the underlying, presumably hard problem upon which several 
  1740. public-key cryptosystems are based, including RSA. Factoring an RSA
  1741. modulus (see Question 2.1) would allow an attacker to figure out 
  1742. the private key; thus, anyone who can factor the modulus can decrypt 
  1743. messages and forge signatures. The security of RSA therefore depends on 
  1744. the factoring problem being difficult. Unfortunately, it has not been 
  1745. proven that factoring must be difficult, and there remains a possibility 
  1746. that a quick and easy factoring method might be discovered (see Question 
  1747. 4.7), although factoring researchers consider this possibility remote.
  1748.  
  1749. Factoring large numbers takes more time than factoring smaller numbers.
  1750. This is why the size of the modulus in RSA determines how secure an 
  1751. actual use of RSA is; the larger the modulus, the longer it would take
  1752. an attacker to factor, and thus the more resistant to attack the RSA
  1753. implementation is.
  1754.  
  1755.  
  1756. 4.5 Has factoring been getting easier?
  1757.  
  1758. Factoring has become easier over the last fifteen years for two reasons:
  1759. computer hardware has become more powerful, and better factoring algorithms 
  1760. have been developed. 
  1761.  
  1762. Hardware improvement will continue inexorably, but it is important to 
  1763. realize that hardware improvements make RSA more secure, not less.
  1764. This is because a hardware improvement that allows an attacker to factor
  1765. a number two digits longer than before will at the same time allow 
  1766. a legitimate RSA user to use a key dozens of digits longer than before; 
  1767. a user can choose a new key a dozen digits longer than the old one without
  1768. any performance slowdown, yet a factoring attack will become much more
  1769. difficult. Thus although the hardware improvement does help the attacker, 
  1770. it helps the legitimate user much more. This general rule may fail in the 
  1771. sense that factoring may take place using fast machines of the future, 
  1772. attacking RSA keys of the past; in this scenario, only the attacker gets 
  1773. the advantage of the hardware improvement. This consideration argues for 
  1774. using a larger key size today than one might otherwise consider warranted. 
  1775. It also argues for replacing one's RSA key with a longer key every few 
  1776. years, in order to take advantage of the extra security offered by hardware 
  1777. improvements. This point holds for other public-key systems as well.
  1778.  
  1779. Better factoring algorithms have been more help to the RSA attacker than have 
  1780. hardware improvements. As the RSA system, and cryptography in general, have 
  1781. attracted much attention, so has the factoring problem, and many researchers 
  1782. have found new factoring methods or improved upon others. This has made 
  1783. factoring easier, for numbers of any size and irrespective of the speed of 
  1784. the hardware. However, factoring is still a very difficult problem.
  1785.  
  1786. Overall, any recent decrease in security due to algorithm improvement can 
  1787. be offset by increasing the key size. In fact, between general computer 
  1788. hardware improvements and special-purpose RSA hardware improvements, 
  1789. increases in key size (maintaining a constant speed of RSA operations) have 
  1790. kept pace or exceeded increases in algorithm efficiency, resulting in no net 
  1791. loss of security. As long as hardware continues to improve at a faster rate 
  1792. than that at which the complexity of factoring algorithms decreases, the 
  1793. security of RSA will increase, assuming RSA users regularly increase their 
  1794. key size by appropriate amounts. The open question is how much faster 
  1795. factoring algorithms can get; there must be some intrinsic limit to 
  1796. factoring speed, but this limit remains unknown.
  1797.  
  1798.  
  1799. 4.6 What are the best factoring methods in use today?
  1800.  
  1801. Factoring is a very active field of research among mathematicians and
  1802. computer scientists; the best factoring algorithms are mentioned below 
  1803. with some references and their big-O asymptotic efficiency. O notation 
  1804. measures how fast an algorithm is; it gives an upper bound on the number 
  1805. of operations (to order of magnitude) in terms of n, the number to be 
  1806. factored, and p, a prime factor of n. For textbook treatment of 
  1807. factoring algorithms, see [41], [42], [47],
  1808. and [11]; for a detailed explanation of 
  1809. big-O notation, see [22].
  1810.  
  1811. Factoring algorithms come in two flavors, special purpose and general
  1812. purpose; the efficiency of the former depends on the unknown factors, 
  1813. whereas the efficiency of the latter depends on the number to be factored. 
  1814. Special purpose algorithms are best for factoring numbers with small 
  1815. factors, but the numbers used for the modulus in the RSA system do not 
  1816. have any small factors. Therefore, general purpose factoring algorithms 
  1817. are the more important ones in the context of cryptographic systems and 
  1818. their security. 
  1819.  
  1820. Special purpose factoring algorithms include the Pollard rho method [66], 
  1821. with expected running time O(sqrt(p)), and the Pollard p-1 method [67], 
  1822. with running time O(p'), where p' is the largest prime factor of p-1. Both 
  1823. of these take an amount of time that is exponential in the size of p, the 
  1824. prime factor that they find; thus these algorithms are too slow for most 
  1825. factoring jobs. The elliptic curve method (ECM) [50] is superior to these; 
  1826. its asymptotic running time is O(exp (sqrt (2 ln p ln ln p)) ). The ECM is 
  1827. often used in practice to find factors of randomly generated numbers; it is 
  1828. not strong enough to factor a large RSA modulus.
  1829.  
  1830. The best general purpose factoring algorithm today is the number field 
  1831. sieve [16], which runs in time approximately O(exp ( 1.9 (ln n)^{1/3} 
  1832. (ln ln n)^{2/3}) ). It has only recently been implemented [15], and is 
  1833. not yet practical enough to perform the most desired factorizations. 
  1834. Instead, the most widely used general purpose algorithm is the multiple 
  1835. polynomial quadratic sieve (mpqs) [77], which has running time 
  1836. O(exp ( sqrt (ln n ln ln n)) ). The mpqs (and some of its variations) 
  1837. is the only general purpose algorithm that has successfully factored 
  1838. numbers greater than 110 digits; a variation known as ppmpqs [49]
  1839. has been particularly popular.
  1840.  
  1841. It is expected that within a few years the number field sieve will overtake 
  1842. the mpqs as the most widely used factoring algorithm, as the size of the 
  1843. numbers being factored increases from about 120 digits, which is the current 
  1844. threshold of general numbers which can be factored, to 130 or 140 digits. A 
  1845. ``general number'' is one with no special form that might make it easier to 
  1846. factor; an RSA modulus is a general number. Note that a 512-bit number has 
  1847. about 155 digits. 
  1848.  
  1849. Numbers that have a special form can already be factored up to 155 digits 
  1850. or more [48]. The Cunningham Project [14] keeps track of the factorizations 
  1851. of numbers with these special forms and maintains a ``10 Most Wanted'' list 
  1852. of desired factorizations. Also, a good way to survey current factoring 
  1853. capability is to look at recent results of the RSA Factoring Challenge 
  1854. (see Question 4.8).
  1855.  
  1856.  
  1857. 4.7 What are the prospects for theoretical factoring breakthroughs?
  1858.  
  1859. Although factoring is strongly believed to be a difficult mathematical
  1860. problem, it has not been proved so. Therefore there remains a possibility 
  1861. that an easy factoring algorithm will be discovered. This development, which 
  1862. could seriously weaken RSA, would be highly surprising and the possibility 
  1863. is considered extremely remote by the researchers most actively engaged in 
  1864. factoring research. 
  1865.  
  1866. Another possibility is that someone will prove that factoring is difficult.
  1867. This negative breakthrough is probably more likely than the positive 
  1868. breakthrough discussed above, but would also be unexpected at the current 
  1869. state of theoretical factoring research. This development would guarantee 
  1870. the security of RSA beyond a certain key size.
  1871.  
  1872.  
  1873. 4.8 What is the RSA Factoring Challenge?
  1874.  
  1875. RSA Data Security Inc. (RSADSI) administers a factoring contest with 
  1876. quarterly cash prizes. Those who factor numbers listed by RSADSI earn
  1877. points toward the prizes; factoring smaller numbers earns more points than
  1878. factoring larger numbers. Results of the contest may be useful to those who 
  1879. wish to know the state of the art in factoring; the results show the size 
  1880. of numbers factored, which algorithms are used, and how much time was 
  1881. required to factor each number. Send e-mail to challenge-info@rsa.com 
  1882. for information. 
  1883.  
  1884.  
  1885. 4.9 What is the discrete log problem?
  1886.  
  1887. The discrete log problem, in its most common formulation, is to find
  1888. the exponent x in the formula y=g^x mod p; in other words, it seeks to 
  1889. answer the question, To what power must g be raised in order to obtain 
  1890. y, modulo the prime number p? There are other, more general, formulations 
  1891. as well.
  1892.  
  1893. Like the factoring problem, the discrete log problem is believed to be
  1894. difficult and also to be the hard direction of a one-way function. For 
  1895. this reason, it has been the basis of several public-key cryptosystems,
  1896. including the ElGamal system and DSS (see Questions 2.15 and 6.8). The 
  1897. discrete log problem bears the same relation to these systems as factoring 
  1898. does to RSA: the security of these systems rests on the assumption that 
  1899. discrete logs are difficult to compute.
  1900.  
  1901. The discrete log problem has received much attention in recent years; 
  1902. descriptions of some of the most efficient algorithms can be found in 
  1903. [47], [21], and [33]. The best discrete log problems have expected 
  1904. running times similar to that of the best factoring algorithms. Rivest 
  1905. [72] has analyzed the expected time to solve discrete log both in terms 
  1906. of computing power and money.
  1907.  
  1908.  
  1909. 4.10 Which is easier, factoring or discrete log?
  1910.  
  1911. The asymptotic running time of the best discrete log algorithm is
  1912. approximately the same as for the best general purpose factoring
  1913. algorithm. Therefore, it requires about as much effort to solve
  1914. the discrete log problem modulo a 512-bit prime as to factor a 
  1915. 512-bit RSA modulus.  One paper [45] cites experimental evidence 
  1916. that the discrete log problem is slightly harder than factoring: 
  1917. the authors suggest that the effort necessary to factor a 110-digit 
  1918. integer is the same as the effort to solve discrete logarithms modulo 
  1919. a 100-digit prime. This difference is so slight that it should not 
  1920. be a significant consideration when choosing a cryptosystem.
  1921.  
  1922. Historically, it has been the case that an algorithmic advance in either 
  1923. problem, factoring or discrete logs, was then applied to the other. This 
  1924. suggests that the degrees of difficulty of both problems are closely 
  1925. linked, and that any breakthrough, either positive or negative, will affect 
  1926. both problems equally.
  1927.  
  1928.  
  1929. 5 DES
  1930.  
  1931. 5.1 What is DES?
  1932.  
  1933. DES is the Data Encryption Standard, an encryption block cipher defined 
  1934. and endorsed by the U.S. government in 1977 as an official standard;
  1935. the details can be found in the official FIPS publication [59]. It was 
  1936. originally developed at IBM. DES has been extensively studied over the 
  1937. last 15 years and is the most well-known and widely used cryptosystem 
  1938. in the world. 
  1939.  
  1940. DES is a secret-key, symmetric cryptosystem: when used for communication,
  1941. both sender and receiver must know the same secret key, which is used both
  1942. to encrypt and decrypt the message. DES can also be used for single-user
  1943. encryption, such as to store files on a hard disk in encrypted form. In
  1944. a multi-user environment, secure key distribution may be difficult; 
  1945. public-key cryptography was invented to solve this problem (see Question 
  1946. 1.3). DES operates on 64-bit blocks with a 56-bit key. It was designed to 
  1947. be implemented in hardware, and its operation is relatively fast. It works
  1948. well for bulk encryption, that is, for encrypting a large set of data. 
  1949.  
  1950. NIST (see Question 7.1) has recertified DES as an official U.S. government 
  1951. encryption standard every five years; DES was last recertified in 1993, 
  1952. by default. NIST has indicated, however, that it may not recertify DES 
  1953. again.
  1954.  
  1955.  
  1956. 5.2 Has DES been broken?
  1957.  
  1958. DES has never been ``broken'', despite the efforts of many researchers 
  1959. over many years. The obvious method of attack is brute-force exhaustive 
  1960. search of the key space; this takes 2^{55} steps on average. Early on 
  1961. it was suggested [28] that a rich and powerful enemy could build a 
  1962. special-purpose computer capable of breaking DES by exhaustive search 
  1963. in a reasonable amount of time. Later, Hellman [36] showed a time-memory 
  1964. trade-off that allows improvement over exhaustive search if memory space 
  1965. is plentiful, after an exhaustive precomputation. These ideas fostered 
  1966. doubts about the security of DES. There were also accusations that the 
  1967. NSA had intentionally weakened DES. Despite these suspicions, no feasible 
  1968. way to break DES faster than exhaustive search was discovered. The cost 
  1969. of a specialized computer to perform exhaustive search has been estimated 
  1970. by Wiener at one million dollars [80]. 
  1971.  
  1972. Just recently, however, the first attack on DES that is better than 
  1973. exhaustive search was announced by Eli Biham and Adi Shamir [6,7],
  1974. using a new technique known as differential cryptanalysis. This attack 
  1975. requires encryption of 2^{47} chosen plaintexts, i.e., plaintexts chosen 
  1976. by the attacker. Although a theoretical breakthrough, this attack is 
  1977. not practical under normal circumstances because it requires the attacker 
  1978. to have easy access to the DES device in order to encrypt the chosen 
  1979. plaintexts. Another attack, known as linear cryptanalysis [51], does not 
  1980. require chosen plaintexts.
  1981.  
  1982. The consensus is that DES, when used properly, is secure against all but
  1983. the most powerful enemies. In fact, triple encryption DES (see Question 
  1984. 5.3) may be secure against anyone at all. Biham and Shamir have stated 
  1985. that they consider DES secure. It is used extensively in a wide variety 
  1986. of cryptographic systems, and in fact, most implementations of public-key 
  1987. cryptography include DES at some level. 
  1988.  
  1989.  
  1990. 5.3 How does one use DES securely?
  1991.  
  1992. When using DES, there are several practical considerations that can
  1993. affect the security of the encrypted data. One should change DES keys 
  1994. frequently, in order to prevent attacks that require sustained data 
  1995. analysis. In a communications context, one must also find a secure way 
  1996. of communicating the DES key to both sender and receiver. Use of RSA or 
  1997. some other public-key technique for key management solves both these 
  1998. issues: a different DES key is generated for each session, and secure 
  1999. key management is provided by encrypting the DES key with the receiver's 
  2000. RSA public key. RSA, in this circumstance, can be regarded as a tool for 
  2001. improving the security of DES (or any other secret key cipher).
  2002.  
  2003. If one wishes to use DES to encrypt files stored on a hard disk, it is
  2004. not feasible to frequently change the DES keys, as this would entail 
  2005. decrypting and then re-encrypting all files upon each key change. Instead,
  2006. one should have a master DES key with which one encrypts the list of DES
  2007. keys used to encrypt the files; one can then change the master key 
  2008. frequently without much effort.
  2009.  
  2010. A powerful technique for improving the security of DES is triple encryption, 
  2011. that is, encrypting each message block under three different DES keys in 
  2012. succession. Triple encryption is thought to be equivalent to doubling the 
  2013. key size of DES, to 112 bits, and should prevent decryption by an enemy 
  2014. capable of single-key exhaustive search [53]. Of course, using 
  2015. triple-encryption takes three times as long as single-encryption DES.
  2016.  
  2017. Aside from the issues mentioned above, DES can be used for encryption in 
  2018. several officially defined modes. Some are more secure than others. ECB 
  2019. (electronic codebook) mode simply encrypts each 64-bit block of plaintext 
  2020. one after another under the same 56-bit DES key. In CBC (cipher block 
  2021. chaining) mode, each 64-bit plaintext block is XORed with the previous 
  2022. ciphertext block before being encrypted with the DES key. Thus the encryption 
  2023. of each block depends on previous blocks and the same 64-bit plaintext 
  2024. block can encrypt to different ciphertext depending on its context in the 
  2025. overall message. CBC mode helps protect against certain attacks, although 
  2026. not against exhaustive search or differential cryptanalysis. CFB (cipher 
  2027. feedback) mode allows one to use DES with block lengths less than 64 bits. 
  2028. Detailed descriptions of the various DES modes can be found in [60].
  2029.  
  2030. In practice, CBC is the most widely used mode of DES, and is specified in 
  2031. several standards. For additional security, one could use triple encryption 
  2032. with CBC, but since single DES in CBC mode is usually considered secure 
  2033. enough, triple encryption is not often used.
  2034.  
  2035.  
  2036. 5.4 Can DES be exported from the U.S.?
  2037.  
  2038. Export of DES, either in hardware or software, is strictly regulated by 
  2039. the U.S. State Department and the NSA (see Question 1.6). The government 
  2040. rarely approves export of DES, despite the fact that DES is widely 
  2041. available overseas; financial institutions and foreign subsidiaries of 
  2042. U.S. companies are exceptions. 
  2043.  
  2044.  
  2045. 5.5 What are the alternatives to DES?
  2046.  
  2047. Over the years, various bulk encryption algorithms have been designed as 
  2048. alternatives to DES. One is FEAL (Fast Encryption ALgorithm), a cipher for 
  2049. which attacks have been discovered [6], although new versions have been 
  2050. proposed. Another recently proposed cipher designed by Lai and Massey 
  2051. [44] and known as IDEA seems promising, although it has not yet received 
  2052. sufficient scrutiny to instill full confidence in its security. The U.S. 
  2053. government recently announced a new algorithm called Skipjack (see Question 
  2054. 6.5) as part of its Capstone project. Skipjack operates on 64-bit blocks of 
  2055. data, as does DES, but uses 80-bit keys, as opposed to 56-bit keys in DES. 
  2056. However, the details of Skipjack are classified, so Skipjack is only 
  2057. available in hardware from government-authorized manufacturers.
  2058.  
  2059. Rivest has developed the ciphers RC2 and RC4 (see Question 8.6), which can 
  2060. be made as secure as necessary because they use variable key sizes. Faster 
  2061. than DES, at least in software, they have the further advantage of special 
  2062. U.S. government status whereby the export approval is simplified and 
  2063. expedited if the key size is limited to 40 bits. 
  2064.  
  2065.  
  2066. 5.6 Is DES a group?
  2067.  
  2068. It has been frequently asked whether DES encryption is closed under
  2069. composition; i.e., is encrypting a plaintext under one DES key and
  2070. then encrypting the result under another key always equivalent to a 
  2071. single encryption under a single key? Algebraically, is DES a group?
  2072. If so, then DES might be weaker than would otherwise be the case; see 
  2073. [39] for a more complete discussion. However, the answer is no, DES 
  2074. is not a group [18]; this issue was settled only recently, after many 
  2075. years of speculation and circumstantial evidence. This result seems to 
  2076. imply that techniques such as triple encryption do in fact increase 
  2077. the security of DES.
  2078.  
  2079.  
  2080.        --------------------------------------------
  2081.  
  2082. RSA Laboratories is the research and consultation division of RSA Data
  2083. Security, Inc., the company founded by the inventors of the RSA
  2084. public-key cryptosystem. RSA Laboratories reviews, designs and
  2085. implements secure and efficient cryptosystems of all kinds. Its
  2086. clients include government agencies, telecommunications companies,
  2087. computer manufacturers, software developers, cable TV broadcasters,
  2088. interactive video manufacturers, and satellite broadcast companies,
  2089. among others.
  2090.  
  2091. For more information about RSA Laboratories, call or write to 
  2092.                         RSA Laboratories
  2093.                         100 Marine Parkway
  2094.                         Redwood City, CA 94065
  2095.                         (415) 595-7703
  2096.                         (415) 595-4126 (fax)
  2097.  
  2098.  
  2099.  
  2100. PKCS, RSAREF and RSA Laboratories are trademarks of RSA Data
  2101. Security, Inc. All other trademarks belong to their respective 
  2102. companies.
  2103.  
  2104. This document is available in ASCII, Postscript, and Latex formats
  2105. via anonymous FTP to rsa.com:/pub/faq.
  2106.  
  2107. Please send comments and corrections to faq-editor@rsa.com.
  2108.  
  2109.  
  2110.  
  2111. ===
  2112. DISTRIBUTION: How to obtain this document
  2113.  
  2114. This document has been brought to you in part by CRAM, involved in the
  2115. redistribution of valuable information to a wider USENET audience (see
  2116. below). The most recent version of this document can be obtained via
  2117. the author's instructions above. The following directions apply to 
  2118. retrieve the possibly less-current USENET FAQ version.
  2119.  
  2120.   FTP
  2121.   ---
  2122.     This FAQ is available from the standard FAQ server rtfm.mit.edu via
  2123.     FTP in the directory /pub/usenet/news.answers/cryptography-faq/rsa/
  2124.  
  2125.   Email
  2126.   -----
  2127.     Email requests for FAQs go to mail-server@rtfm.mit.edu with commands
  2128.     on lines in the message body, e.g. `help' and `index'.
  2129.  
  2130.   Usenet
  2131.   ------
  2132.     This FAQ is posted every 21 days to the groups
  2133.  
  2134.       sci.crypt
  2135.       talk.politics.crypto
  2136.       alt.security.ripem
  2137.       sci.answers
  2138.       talk.answers
  2139.       alt.answers
  2140.       news.answers
  2141.  
  2142. _ _, _ ___ _, __,  _, _  _, ___ _  _, _, _ _  _, __,  _, _  _ ___ __,
  2143. | |\ | |_ / \ |_)  |\/| / \  |  | / \ |\ | | (_  |_) / \ |  | |_  | )
  2144. | | \| |  \ / | \  |  | |~|  |  | \ / | \| | , ) |   \ / |/\| |   |~\
  2145. ~ ~  ~ ~   ~  ~  ~ ~  ~ ~ ~  ~  ~  ~  ~  ~ ~  ~  ~    ~  ~  ~ ~~~ ~  ~
  2146.  
  2147. ===
  2148. CRAM: The Cyberspatial Reality Advancement Movement
  2149.  
  2150. In an effort to bring valuable information to the masses, and as a
  2151. service to motivated information compilers, a member of CRAM can help
  2152. others unfamiliar with Usenet `publish' their documents for
  2153. widespread dissemination via the FAQ structure, and act as a
  2154. `sponsor' knowledgable in the submissions process. This document is
  2155. being distributed under this arrangement.
  2156.  
  2157. We have found these compilations tend to appear on various mailing
  2158. lists and are valuable enough to deserve wider distribution. If you
  2159. know of an existing compilation of Internet information that is not
  2160. currently a FAQ, please contact us and we may `sponsor' it. The
  2161. benefits to the author include:
  2162.  
  2163. - use of the existing FAQ infrastructure for distribution:
  2164.   - automated mail server service
  2165.   - FTP archival
  2166.   - automated posting
  2167.  
  2168. - a far wider audience that can improve the quality, accuracy, and 
  2169.   coverage of the document enormously through email feedback
  2170.  
  2171. - potential professional inquiries for the use of your document in 
  2172.   other settings, such as newsletters, books, etc.
  2173.  
  2174. - with us as your sponsor, we will also take care of the 
  2175.   technicalities in the proper format of the posted version and 
  2176.   updating procedures, leaving you free of the `overhead' to focus on 
  2177.   the basic updates alone
  2178.  
  2179. The choice of who we `sponsor' is entirely arbitrary. You always have
  2180. the option of handling the submission process yourself.  See the FAQ
  2181. submission guidelines FAQ in news.answers. 
  2182.  
  2183. For information, send mail to <tmp@netcom.com>.
  2184.  
  2185.  \   \   \   \   \   \   \   \   \   |   /   /   /   /   /   /   /   /   /   /
  2186.           _______       ________          _____        _____  _____
  2187.          ///   \\\      |||   \\\        /// \\\       |||\\\///|||
  2188.         |||     ~~      |||   ///       |||   |||      ||| \\// |||
  2189.         |||     __      |||~~~\\\       |||~~~|||      |||  ~~  |||
  2190.          \\\   ///      |||    \\\      |||   |||      |||      |||
  2191.           ~~~~~~~       ~~~     ~~~     ~~~   ~~~      ~~~      ~~~
  2192.  /   /   /   /   /   /   /   /   /   |   \   \   \   \   \   \   \   \   \   \
  2193.  
  2194. C y b e r s p a t i a l  R e a l i t y  A d v a n c e m e n t  M o v e m e n t
  2195.  
  2196. * CIVILIZING CYBERSPACE: send `info cypherwonks' to majordomo@lists.eunet.fi *
  2197.  
  2198.  
  2199. From faq-editor@rsa.com Mon Aug 22 19:45:08 1994
  2200. From: faq-editor@rsa.com
  2201. Newsgroups: sci.crypt,talk.politics.crypto,alt.security.ripem,sci.answers,talk.answers,alt.answers,news.answers
  2202. Subject: RSA Cryptography Today FAQ (3/3)
  2203. Supersedes: <cryptography-faq/rsa/part3_775371303@rtfm.mit.edu>
  2204. Followup-To: poster
  2205. Date: 19 Aug 1994 02:26:55 GMT
  2206. Organization: none
  2207. Reply-To: faq-editor@rsa.com
  2208. NNTP-Posting-Host: bloom-picayune.mit.edu
  2209. X-Last-Updated: 1994/06/13
  2210. Originator: faqserv@bloom-picayune.MIT.EDU
  2211.  
  2212. Archive-name: cryptography-faq/rsa/part3
  2213. Last-modified: 93/09/20
  2214. Version: 2.0
  2215. Distribution-agent: tmp@netcom.com
  2216.  
  2217.  
  2218. (This document has been brought to you in part by CRAM.  See the
  2219. bottom for more information, including instructions on how to
  2220. obtain updates.)
  2221.  
  2222. ===
  2223.  
  2224.  
  2225.  
  2226.                           Answers To
  2227.                  FREQUENTLY ASKED QUESTIONS
  2228.                  About Today's Cryptography
  2229.  
  2230.  
  2231.  
  2232.                           Paul Fahn
  2233.                       RSA Laboratories
  2234.                      100 Marine Parkway
  2235.                    Redwood City, CA  94065
  2236.  
  2237.  
  2238.  
  2239.    Copyright (c) 1993 RSA Laboratories, a division of RSA Data Security,
  2240.       Inc. All rights reserved.
  2241.  
  2242.    Version 2.0, draft 2f
  2243.    Last update: September 20, 1993
  2244.  
  2245.  
  2246.  
  2247. ------------------------------------------------------------------------
  2248.                          Table of Contents
  2249.  
  2250. [part 3]
  2251.  
  2252. 6 Capstone, Clipper, and DSS 
  2253.        6.1  What is Capstone? 
  2254.        6.2  What is Clipper? 
  2255.        6.3  How does the Clipper chip work? 
  2256.        6.4  Who are the escrow agencies? 
  2257.        6.5  What is Skipjack? 
  2258.        6.6  Why is Clipper controversial? 
  2259.        6.7  What is the current status of Clipper? 
  2260.        6.8  What is DSS? 
  2261.        6.9  Is DSS secure? 
  2262.        6.10  Is use of DSS covered by any patents? 
  2263.        6.11  What is the current status of DSS? 
  2264.  
  2265. 7 NIST and NSA 
  2266.        7.1  What is NIST? 
  2267.        7.2  What role does NIST play in cryptography? 
  2268.        7.3  What is the NSA? 
  2269.        7.4  What role does the NSA play in commercial cryptography? 
  2270.  
  2271. 8 Miscellaneous 
  2272.        8.1  What is the legal status of documents signed with digital 
  2273.             signatures? 
  2274.        8.2  What is a hash function? What is a message digest? 
  2275.        8.3  What are MD2, MD4 and MD5? 
  2276.        8.4  What is SHS? 
  2277.        8.5  What is Kerberos? 
  2278.        8.6  What are RC2 and RC4? 
  2279.        8.7  What is PEM? 
  2280.        8.8  What is RIPEM? 
  2281.        8.9  What is PKCS? 
  2282.        8.10  What is RSAREF? 
  2283.  
  2284. --------------------------------------------------------------------
  2285.  
  2286.  
  2287. 6 Capstone, Clipper, and DSS
  2288.  
  2289. 6.1 What is Capstone?
  2290.  
  2291. Capstone is the U.S. government's long-term project to develop a set
  2292. of standards for publicly-available cryptography, as authorized by 
  2293. the Computer Security Act of 1987. The primary agencies responsible 
  2294. for Capstone are NIST and the NSA (see Section 7). The plan calls for 
  2295. the elements of Capstone to become official U.S. government standards, 
  2296. in which case both the government itself and all private companies doing 
  2297. business with the government would be required to use Capstone.
  2298.  
  2299. There are four major components of Capstone: a bulk data encryption
  2300. algorithm, a digital signature algorithm, a key exchange protocol, and
  2301. a hash function. The data encryption algorithm is called Skipjack (see 
  2302. Question 6.5), but is often referred to as Clipper, which is the 
  2303. encryption chip that includes Skipjack (see Question 6.2). The digital 
  2304. signature algorithm is DSS (see Question 6.8) and the hash function is 
  2305. SHS (see Question 8.4 about SHS and Question 8.2 about hash functions). 
  2306. The key exchange protocol has not yet been announced. 
  2307.  
  2308. All the parts of Capstone have 80-bit security: all the keys involved
  2309. are 80 bits long and other aspects are also designed to withstand 
  2310. anything less than an ``80-bit'' attack, that is, an effort of 2^{80} 
  2311. operations. Eventually the government plans to place the entire Capstone 
  2312. cryptographic system on a single chip.
  2313.  
  2314.  
  2315. 6.2 What is Clipper?
  2316.  
  2317. Clipper is an encryption chip developed and sponsored by the U.S. 
  2318. government as part of the Capstone project (see Question 6.1).
  2319. Announced by the White House in April, 1993 [65], Clipper was designed 
  2320. to balance the competing concerns of federal law-enforcement agencies 
  2321. with those of private citizens and industry. The law-enforcement 
  2322. agencies wish to have access to the communications of suspected 
  2323. criminals, for example by wire-tapping; these needs are threatened by 
  2324. secure cryptography. Industry and individual citizens, however, want 
  2325. secure communications, and look to cryptography to provide it.
  2326.  
  2327. Clipper technology attempts to balance these needs by using escrowed
  2328. keys. The idea is that communications would be encrypted with a 
  2329. secure algorithm, but the keys would be kept by one or more third 
  2330. parties (the ``escrow agencies''), and made available to law-enforcement 
  2331. agencies when authorized by a court-issued warrant. Thus, for 
  2332. example, personal communications would be impervious to recreational 
  2333. eavesdroppers, and commercial communications would be impervious to 
  2334. industrial espionage, and yet the FBI could listen in on suspected 
  2335. terrorists or gangsters. 
  2336.  
  2337. Clipper has been proposed as a U.S. government standard [62]; it would 
  2338. then be used by anyone doing business with the federal government as well 
  2339. as for communications within the government. For anyone else, use of 
  2340. Clipper is strictly voluntary. AT&T has announced a secure telephone 
  2341. that uses the Clipper chip.
  2342.  
  2343.  
  2344. 6.3 How does the Clipper chip work?
  2345.  
  2346. The Clipper chip contains an encryption algorithm called Skipjack (see
  2347. Question 6.5}), whose details have not been made public. Each chip 
  2348. also contains a unique 80-bit unit key U, which is escrowed in two parts 
  2349. at two escrow agencies; both parts must be known in order to recover the 
  2350. key. Also present is a serial number and an 80-bit ``family key'' F; the 
  2351. latter is common to all Clipper chips. The chip is manufactured so that it 
  2352. cannot be reverse engineered; this means that the Skipjack algorithm and 
  2353. the keys cannot be read off the chip.
  2354.  
  2355. When two devices wish to communicate, they first agree on an 80-bit
  2356. ``session key'' K. The method by which they choose this key is left
  2357. up to the implementer's discretion; a public-key method such as RSA or
  2358. Diffie-Hellman seems a likely choice. The message is encrypted with
  2359. the key K and sent; note that the key K is not escrowed. In addition 
  2360. to the encrypted message, another piece of data, called the law-enforcement 
  2361. access field (LEAF), is created and sent. It includes the session key K 
  2362. encrypted with the unit key U, then concatenated with the serial number 
  2363. of the sender and an authentication string, and then, finally, all encrypted 
  2364. with the family key. The exact details of the law-enforcement field are 
  2365. classified.
  2366.  
  2367. The receiver decrypts the law-enforcement field, checks the authentication
  2368. string, and decrypts the message with the key K. 
  2369.  
  2370. Now suppose a law-enforcement agency wishes to tap the line. It uses the
  2371. family key to decrypt the law-enforcement field; the agency now knows the
  2372. serial number and has an encrypted version of the session key. It presents
  2373. an authorization warrant to the two escrow agencies along with the serial
  2374. number. The escrow agencies give the two parts of the unit key to the
  2375. law-enforcement agency, which then decrypts to obtain the session key K.
  2376. Now the agency can use K to decrypt the actual message.
  2377.  
  2378. Further details on the Clipper chip operation, such as the generation
  2379. of the unit key, are sketched by Denning [26].
  2380.  
  2381.  
  2382. 6.4 Who are the escrow agencies?
  2383.  
  2384. It has not yet been decided which organizations will serve as the escrow
  2385. agencies, that is, keep the Clipper chip keys. No law-enforcement agency
  2386. will be an escrow agency, and it is possible that at least one of the
  2387. escrow agencies will be an organization outside the government.
  2388.  
  2389. It is essential that the escrow agencies keep the key databases
  2390. extremely secure, since unauthorized access to both escrow 
  2391. databases could allow unauthorized eavesdropping on private
  2392. communications. In fact, the escrow agencies are likely to be one
  2393. of the major targets for anyone trying to compromise the Clipper
  2394. system; the Clipper chip factory is another likely target.
  2395.  
  2396.  
  2397. 6.5 What is Skipjack?
  2398.  
  2399. Skipjack is the encryption algorithm contained in the Clipper chip; it was 
  2400. designed by the NSA. It uses an 80-bit key to encrypt 64-bit blocks of data; 
  2401. the same key is used for the decryption. Skipjack can be used in the same 
  2402. modes as DES (see Question 5.3), and may be more secure than DES, since
  2403. it uses 80-bit keys and scrambles the data for 32 steps, or ``rounds''; by
  2404. contrast, DES uses 56-bit keys and scrambles the data for only 16 rounds.
  2405.  
  2406. The details of Skipjack are classified. The decision not to make the details 
  2407. of the algorithm publicly available has been widely criticized. Many people 
  2408. are suspicious that Skipjack is not secure, either due to oversight by its 
  2409. designers, or by the deliberate introduction of a secret trapdoor. By contrast,
  2410. there have been many attempts to find weaknesses in DES over the years, since 
  2411. its details are public. These numerous attempts (and the fact that they have 
  2412. failed) have made people confident in the security of DES. Since Skipjack is
  2413. not public, the same scrutiny cannot be applied towards it, and thus a 
  2414. corresponding level of confidence may not arise. 
  2415.  
  2416. Aware of such criticism, the government invited a small group of independent 
  2417. cryptographers to examine the Skipjack algorithm. They issued a report 
  2418. [12] which stated that, although their study was too limited to reach a 
  2419. definitive conclusion, they nevertheless believe that Skipjack is secure.
  2420.  
  2421. Another consequence of Skipjack's classified status is that it cannot
  2422. be implemented in software, but only in hardware by government-authorized
  2423. chip manufacturers.
  2424.  
  2425.  
  2426. 6.6 Why is Clipper controversial?
  2427.  
  2428. The Clipper chip proposal has aroused much controversy and has been the
  2429. subject of much criticism. Unfortunately two distinct issues have become 
  2430. confused in the large volume of public comment and discussion. 
  2431.  
  2432. First there is controversy about the whole idea of escrowed keys.
  2433. Those in favor of escrowed keys see it as a way to provide secure 
  2434. communications for the public at large while allowing law-enforcement 
  2435. agencies to monitor the communications of suspected criminals. Those
  2436. opposed to escrowed keys see it as an unnecessary and ineffective
  2437. intrusion of the government into the private lives of citizens. They
  2438. argue that escrowed keys infringe their rights of privacy and free
  2439. speech. It will take a lot of time and much public discussion for society
  2440. to reach a consensus on what role, if any, escrowed keys should have.
  2441.  
  2442. The second area of controversy concerns various objections to the
  2443. specific Clipper proposal, that is, objections to this particular
  2444. implementation of escrowed keys, as opposed to the idea of escrowed
  2445. keys in general. Common objections include: the Skipjack algorithm
  2446. is not public (see Questions 6.5) and may not be secure; the key 
  2447. escrow agencies will be vulnerable to attack; there are not enough
  2448. key escrow agencies; the keys on the Clipper chips are not generated
  2449. in a sufficiently secure fashion; there will not be sufficient 
  2450. competition among implementers, resulting in expensive and slow chips;
  2451. software implementations are not possible; and the key size is fixed
  2452. and cannot be increased if necessary.
  2453.  
  2454. Micali [55] has recently proposed an alternative system that also 
  2455. attempts to balance the privacy concerns of law-abiding citizens with 
  2456. the investigative concerns of law-enforcement agencies. Called fair 
  2457. public-key cryptography, it is similar in function and purpose to the 
  2458. Clipper chip proposal but users can choose their own keys, which they 
  2459. register with the escrow agencies. Also, the system does not require 
  2460. secure hardware, and can be implemented completely in software.
  2461.  
  2462.  
  2463. 6.7 What is the current status of Clipper?
  2464.  
  2465. Clipper is under review. Both the executive branch and Congress are
  2466. considering it, and an advisory panel recently recommended a full
  2467. year-long public discussion of cryptography policy. NIST has invited 
  2468. the public to send comments, as part of its own review.
  2469.  
  2470.  
  2471. 6.8 What is DSS?
  2472.  
  2473. DSS is the proposed Digital Signature Standard, which specifies a 
  2474. Digital Signature Algorithm (DSA), and is a part of the U.S. government's
  2475. Capstone project (see Question 6.1). It was selected by NIST, 
  2476. in cooperation with the NSA (see Section 7), to be the digital 
  2477. authentication standard of the U.S. government; whether the government 
  2478. should in fact adopt it as the official standard is still 
  2479. under debate. 
  2480.  
  2481. DSS is based on the discrete log problem (see Question 4.9) and derives 
  2482. >from cryptosystems proposed by Schnorr [75] and ElGamal [30]. It is for 
  2483. authentication only. For a detailed description of DSS, see [63] or [57].
  2484.  
  2485. DSS has, for the most part, been looked upon unfavorably by the computer 
  2486. industry, much of which had hoped the government would choose the RSA 
  2487. algorithm as the official standard; RSA is the most widely used 
  2488. authentication algorithm. Several articles in the press, such as [54], 
  2489. discuss the industry dissatisfaction with DSS. Criticism of DSS has 
  2490. focused on a few main issues: it lacks key exchange capability; the 
  2491. underlying cryptosystem is too recent and has been subject to too little 
  2492. scrutiny for users to be confident of its strength; verification of 
  2493. signatures with DSS is too slow; the existence of a second authentication 
  2494. standard will cause hardship to computer hardware and software vendors, who 
  2495. have already standardized on RSA; and that the process by which NIST chose 
  2496. DSS was too secretive and arbitrary, with too much influence wielded by NSA. 
  2497. Other criticisms were addressed by NIST by modifying the original proposal. 
  2498. A more detailed discussion of the various criticisms can be found in 
  2499. [57], and a detailed response by NIST can be found in [78].
  2500.  
  2501. In the DSS system, signature generation is faster than signature 
  2502. verification, whereas in the RSA system, signature verification is 
  2503. faster than signature generation (if the public and private exponents 
  2504. are chosen for this property, which is the usual case). NIST claims 
  2505. that it is an advantage of DSS that signing is faster, but many people 
  2506. in cryptography think that it is better for verification to be the 
  2507. faster operation. 
  2508.  
  2509.  
  2510. 6.9 Is DSS secure?
  2511.  
  2512. The most serious criticisms of DSS involve its security. DSS was originally 
  2513. proposed with a fixed 512-bit key size. After much criticism that this is 
  2514. not secure enough, NIST revised DSS to allow key sizes up to 1024 bits. More 
  2515. critical, however, is the fact that DSS has not been around long enough to 
  2516. withstand repeated attempts to break it; although the discrete log problem 
  2517. is old, the particular form of the problem used in DSS was first proposed 
  2518. for cryptographic use in 1989 by Schnorr [75] and has not received much 
  2519. public study. In general, any new cryptosystem could have serious flaws 
  2520. that are only discovered after years of scrutiny by cryptographers. Indeed 
  2521. this has happened many times in the past; see [13] for some detailed 
  2522. examples. RSA has withstood over 15 years of vigorous examination for 
  2523. weaknesses. In the absence of mathematical proofs of security, nothing 
  2524. builds confidence in a cryptosystem like sustained attempts to crack it. 
  2525. Although DSS may well turn out to be a strong cryptosystem, its relatively 
  2526. short history will leave doubts for years to come.
  2527.  
  2528. Some researchers warned about the existence of ``trapdoor'' primes in
  2529. DSS, which could enable a key to be easily broken. These trapdoor primes
  2530. are relatively rare however, and are easily avoided if proper key
  2531. generation procedures are followed [78].
  2532.  
  2533.  
  2534. 6.10 Is use of DSS covered by any patents?
  2535.  
  2536. NIST has filed a patent application for DSS and there have been claims that 
  2537. DSS is covered by other public-key patents. NIST recently announced its 
  2538. intention to grant exclusive sublicensing rights for the DSS patent to Public 
  2539. Key Partners (PKP), which also holds the sublicensing rights to other patents 
  2540. that may cover DSS (see Question 1.5). In the agreement between NIST and 
  2541. PKP, PKP publicly stated uniform guidelines by which it will grant licenses 
  2542. to practice DSS. PKP stated that DSS can be used on a royalty-free basis 
  2543. in the case of personal, noncommercial, or U.S. government use. See [61] 
  2544. for details on the agreement and the licensing policy.
  2545.  
  2546.  
  2547. 6.11 What is the current status of DSS?
  2548.  
  2549. After NIST issued the DSS proposal in August 1991, there was a period 
  2550. in which comments from the public were solicited; NIST then revised its
  2551. proposal in light of the comments. DSS may be issued as a FIPS and become 
  2552. the official U.S. government standard, but it is not clear when this 
  2553. might happen. DSS is currently in the process of becoming a standard, 
  2554. along with RSA, for the financial services industry; a recent draft 
  2555. standard [1] contains the revised version of DSS.
  2556.  
  2557.  
  2558. 7 NIST and NSA
  2559.  
  2560. 7.1 What is NIST?
  2561. NIST is an acronym for the National Institute of Standards and Technology,
  2562. a division of the U.S. Department of Commerce; it was formerly known as
  2563. the National Bureau of Standards (NBS). Through its Computer Systems
  2564. Laboratory it aims to promote open systems and interoperability that
  2565. will spur development of computer-based economic activity. NIST issues
  2566. standards and guidelines that it hopes will be adopted by all computer
  2567. systems in the U.S., and also sponsors workshops and seminars. Official 
  2568. standards are published as FIPS (Federal Information Processing Standards) 
  2569. publications.
  2570.  
  2571. In 1987 Congress passed the Computer Security Act, which authorized NIST 
  2572. to develop standards for ensuring the security of sensitive but unclassified 
  2573. information in government computer systems. It encouraged NIST to work with 
  2574. other government agencies and private industry in evaluating proposed 
  2575. computer security standards.
  2576.  
  2577.  
  2578. 7.2 What role does NIST play in cryptography?
  2579.  
  2580. NIST issues standards for cryptographic routines; U.S. government agencies
  2581. are required to use them, and the private sector often adopts them as well.
  2582. In January 1977, NIST declared DES (see Question 5.1) the official U.S. 
  2583. encryption standard and published it as FIPS Publication 46; DES soon 
  2584. became a de facto standard throughout the U.S.
  2585.  
  2586. A few years ago, NIST was asked to choose a set of cryptographic standards
  2587. for the U.S.; this has become known as the Capstone project (see Section 
  2588. 6). After a few years of rather secretive deliberations, and in cooperation 
  2589. with the NSA, NIST issued proposals for various standards in cryptography, 
  2590. including digital signatures (DSS) and data encryption (the Clipper chip); 
  2591. these are pieces of the overall Capstone project.
  2592.  
  2593. NIST has been criticized for allowing the NSA too much power in setting 
  2594. cryptographic standards, since the interests of the NSA conflict with that 
  2595. of the Commerce Department and NIST. Yet, the NSA has much more experience
  2596. with cryptography, and many more qualified cryptographers and cryptanalysts,
  2597. than does NIST; it would be unrealistic to expect NIST to forego such 
  2598. available assistance.
  2599.  
  2600.  
  2601. 7.3 What is the NSA?
  2602.  
  2603. The NSA is the National Security Agency, a highly secretive agency of the 
  2604. U.S. government that was created by Harry Truman in 1952; its very existence 
  2605. was kept secret for many years. For a history of the NSA, see Bamford [2].
  2606. The NSA has a mandate to listen to and decode all foreign communications of 
  2607. interest to the security of the United States. It has also used its power 
  2608. in various ways (see Question 7.4) to slow the spread of publicly available 
  2609. cryptography, in order to prevent national enemies from employing encryption 
  2610. methods too strong for the NSA to break.
  2611.  
  2612. As the premier cryptographic government agency, the NSA has huge financial 
  2613. and computer resources and employs a host of cryptographers. Developments in 
  2614. cryptography achieved at the NSA are not made public; this secrecy has led to 
  2615. many rumors about the NSA's ability to break popular cryptosystems like DES 
  2616. and also to rumors that the NSA has secretly placed weaknesses, called trap 
  2617. doors, in government-endorsed cryptosystems, such as DES. These rumors have 
  2618. never been proved or disproved, and the criteria used by the NSA in selecting 
  2619. cryptography standards have never been made public. 
  2620.  
  2621. Recent advances in the computer and telecommunications industries have 
  2622. placed NSA actions under unprecedented scrutiny, and the agency has become 
  2623. the target of heavy criticism for hindering U.S. industries that wish to use 
  2624. or sell strong cryptographic tools. The two main reasons for this increased 
  2625. criticism are the collapse of the Soviet Union and the development and 
  2626. spread of commercially available public-key cryptographic tools. Under 
  2627. pressure, the NSA may be forced to change its policies.
  2628.  
  2629.  
  2630. 7.4 What role does the NSA play in commercial cryptography?
  2631.  
  2632. The NSA's charter limits its activities to foreign intelligence. However,
  2633. the NSA is concerned with the development of commercial cryptography
  2634. because the availability of strong encryption tools through commercial 
  2635. channels could impede the NSA's mission of decoding international 
  2636. communications; in other words, the NSA is worried lest strong commercial 
  2637. cryptography fall into the wrong hands. 
  2638.  
  2639. The NSA has stated that it has no objection to the use of secure cryptography
  2640. by U.S. industry. It also has no objection to cryptographic tools used for
  2641. authentication, as opposed to privacy. However, the NSA is widely viewed as
  2642. following policies that have the practical effect of limiting and/or weakening
  2643. the cryptographic tools used by law-abiding U.S. citizens and corporations;
  2644. see Barlow [3] for a discussion of NSA's effect on commercial 
  2645. cryptography.
  2646.  
  2647. The NSA exerts influence over commercial cryptography in several ways. 
  2648. First, it controls the export of cryptography from the U.S. (see Question 
  2649. 1.6); the NSA generally does not approve export of products used for 
  2650. encryption unless the key size is strictly limited. It does, however,
  2651. approve for export any products used for authentication only, no matter 
  2652. how large the key size, so long as the product cannot be converted to be
  2653. used for encryption. The NSA has also blocked encryption methods from being 
  2654. published or patented, citing a national security threat; see Landau [46] 
  2655. for a discussion of this practice. Additionally, the NSA serves an 
  2656. ``advisory'' role to NIST in the evaluation and selection of official U.S. 
  2657. government computer security standards; in this capacity, it has played a 
  2658. prominent, and controversial, role in the selection of DES and in the 
  2659. development of the group of standards known as the Capstone project (see 
  2660. Section 6), which includes DSS and the Clipper chip. The NSA can also 
  2661. exert market pressure on U.S. companies to produce (or refrain from 
  2662. producing) cryptographic goods, since the NSA itself is often a large 
  2663. customer of these companies.
  2664.  
  2665. Cryptography is in the public eye as never before and has become the subject
  2666. of national public debate. The status of cryptography, and the NSA's role
  2667. in it, will probably change over the next few years.
  2668.  
  2669.  
  2670. 8 Miscellaneous
  2671.  
  2672. 8.1 What is the legal status of documents signed with digital signatures?
  2673.  
  2674. If digital signatures are to replace handwritten signatures they must have 
  2675. the same legal status as handwritten signatures, i.e., documents signed 
  2676. with digital signatures must be legally binding. NIST has stated that its 
  2677. proposed Digital Signature Standard (see Question 6.8) should be capable 
  2678. of ``proving to a third party that data was actually signed by the 
  2679. generator of the signature.'' Furthermore, U.S. federal government
  2680. purchase orders will be signed by any such standard; this implies that
  2681. the government will support the legal authority of digital signatures
  2682. in the courts. Some preliminary legal research has also resulted in the
  2683. opinion that digital signatures would meet the requirements of legally
  2684. binding signatures for most purposes, including commercial use as defined 
  2685. in the Uniform Commercial Code (UCC). A GAO (Government Accounting
  2686. Office) decision requested by NIST also opines that digital signatures
  2687. will meet the legal standards of handwritten signatures [20].
  2688.  
  2689. However, since the validity of documents with digital signatures has never 
  2690. been challenged in court, their legal status is not yet well-defined.
  2691. Through such challenges, the courts will issue rulings that collectively 
  2692. define which digital signature methods, key sizes, and security precautions 
  2693. are acceptable for a digital signature to be legally binding.
  2694.  
  2695. Digital signatures have the potential to possess greater legal authority
  2696. than handwritten signatures. If a ten-page contract is signed by hand on
  2697. the tenth page, one cannot be sure that the first nine pages have not
  2698. been altered. If the contract was signed by digital signatures, however, 
  2699. a third party can verify that not one byte of the contract has been altered.
  2700.  
  2701. Currently, if two people wish to digitally sign a series of contracts, 
  2702. they may wish to first sign a paper contract in which they agree to be bound 
  2703. in the future by any contracts digitally signed by them with a given 
  2704. signature method and minimum key size.
  2705.  
  2706.  
  2707. 8.2 What is a hash function? What is a message digest?
  2708.  
  2709. A hash function is a computation that takes a variable-size input and returns
  2710. a fixed-size string, which is called the hash value. If the hash function
  2711. is one-way, i.e., hard to invert, it is also called a message-digest function,
  2712. and the result is called a message digest. The idea is that a digest 
  2713. represents concisely the longer message or document from which it was 
  2714. computed; one can think of a message digest as a ``digital fingerprint'' of 
  2715. the larger document. Examples of well-known hash functions are MD4, MD5, 
  2716. and SHS (see Questions 8.3 and 8.4).
  2717.  
  2718. Although hash functions in general have many uses in computer programs, in 
  2719. cryptography they are used to generate a small string (the message digest) 
  2720. that can represent securely a much larger string, such as a file or message. 
  2721. Since the hash functions are faster than the signing functions, it is much 
  2722. more efficient to compute a digital signature using a document's message 
  2723. digest, which is small, than using the arbitrarily large document itself. 
  2724. Additionally, a digest can be made public without revealing the contents of 
  2725. the document from which it derives. This is important in digital 
  2726. time-stamping, where, using hash functions, one can get a document 
  2727. time-stamped without revealing its contents to the time-stamping service 
  2728. (see Question 3.18). 
  2729.  
  2730. A hash function used for digital authentication must have certain 
  2731. properties that make it secure enough for cryptographic use. Specifically,  
  2732. it must be infeasible to find a message that hashes to a given value
  2733. and it must be infeasible to find two distinct messages that hash to 
  2734. the same value. The ability to find a message hashing to a given value
  2735. would enable an attacker to substitute a fake message for a real message
  2736. that was signed. It would also enable someone to falsely disown a 
  2737. message by claiming that he or she actually signed a different message 
  2738. hashing to the same value, thus violating the non-repudiation property
  2739. of digital signatures. The ability to find two distinct messages hashing 
  2740. to the same value could enable an attack whereby someone is tricked into 
  2741. signing a message which hashes to the same value as another message with 
  2742. a quite different meaning. The digest must therefore be long enough to 
  2743. prevent an attacker from doing an exhaustive search for a collision. For 
  2744. example, if a hash function produces 100-bit strings, exhaustive search 
  2745. would take 2^{100} attempts on average to match a given value, and 
  2746. approximately 2^{50} attempts on average to find two inputs producing 
  2747. the same digest. 
  2748.  
  2749. A digital signature system can be broken by attacking either the difficult
  2750. mathematical problem on which the signature method is based or the hash 
  2751. function used to create the message digests. When choosing an authentication 
  2752. system, it is generally a good idea to choose a signature method and a hash 
  2753. function that require comparable efforts to break; any extra security in one 
  2754. of the two components is wasted, since attacks will be directed at the weaker 
  2755. component. Actually, attacking the hash function is harder in practice, since 
  2756. it requires a large amount of memory and the ability to trick the victim into 
  2757. signing a special message. With 2^{64} operations, an attacker can find two 
  2758. messages that hash to the same digest under any of the MD hash functions; 
  2759. this effort is comparable to that necessary to break 512-bit RSA; thus MD5 is 
  2760. a good choice when using RSA with a 512-bit modulus. However, those with 
  2761. greater security needs, such as certifying authorities, should use a longer 
  2762. modulus and a hash function that produces a longer message digest; either SHS 
  2763. (160-bit digest) or a modified version of MD4 that produces a 256-bit digest 
  2764. [71] would suffice.
  2765.  
  2766.  
  2767. 8.3 What are MD2, MD4 and MD5?
  2768.  
  2769. MD2, MD4 and MD5 (MD stands for Message Digest) are widely used hash 
  2770. functions designed by Ron Rivest specifically for cryptographic use.
  2771. They produce 128-bit digests and there is no known attack faster than 
  2772. exhaustive search.
  2773.  
  2774. MD2 is the slowest of the three; MD4 [71] is the fastest. MD5 [73]
  2775. has been dubbed ``MD4 with safety belts'' by Rivest, since it has a 
  2776. more conservative design than MD4; the design gives it increased 
  2777. security against attack, but at a cost of being approximately 33% 
  2778. slower than MD4. MD5 is the most commonly used of the three algorithms. 
  2779. MD4 and MD5 are publicly available for unrestricted use; MD2 is available
  2780. for use with PEM (see Question 8.7). Details of MD2, MD4, and MD5 with 
  2781. sample C code are available in Internet RFCs (Requests For Comments) 
  2782. 1319, 1320, and 1321, respectively. 
  2783.  
  2784. No feasible attacks on any of the MD algorithms have been discovered, 
  2785. although some recent theoretical work has found some interesting
  2786. structural properties [24,25].
  2787.  
  2788.  
  2789. 8.4 What is SHS?
  2790.  
  2791. The Secure Hash Standard (SHS) [58] is a hash function proposed by NIST 
  2792. (see Question 7.1) and adopted as a U.S. government standard. It is 
  2793. designed for use with the proposed Digital Signature Standard (see 
  2794. Question 6.8) and is part of the government's Capstone project (see 
  2795. Question 6.1}). SHS produces a 160-bit hash value from a variable-size 
  2796. input. SHS is structurally similar to MD4 and MD5. It is roughly 25% 
  2797. slower than MD5 but may be more secure, because it produces message 
  2798. digests that are 25% longer than those produced by the MD functions. 
  2799. SHS is currently the only part of Capstone that has been officially 
  2800. adopted as a government standard.
  2801.  
  2802.  
  2803. 8.5 What is Kerberos?
  2804.  
  2805. Kerberos is a secret-key network authentication system developed at MIT
  2806. [79]; it uses DES for encryption and authentication. Unlike a public-key 
  2807. authentication system, it does not produce digital signatures: Kerberos 
  2808. was designed to authenticate requests for network resources rather than 
  2809. to authenticate authorship of documents. Kerberos provides real-time 
  2810. authentication in a distributed environment, but does not provide for 
  2811. future third-party verification of documents.
  2812.  
  2813. In a Kerberos system, there is a designated site on the network, called 
  2814. the Kerberos server, which performs centralized key management and 
  2815. administrative functions. The server maintains a database containing the 
  2816. secret keys of all users, generates session keys whenever two users wish to 
  2817. communicate securely, and authenticates the identity of a user who requests 
  2818. certain network services. 
  2819.  
  2820. Kerberos, like other secret-key systems, requires trust in a third party, 
  2821. in this case the Kerberos server. If the server were compromised, the 
  2822. integrity of the whole system would fall. Public-key cryptography was 
  2823. designed precisely to avoid the necessity to trust third parties or 
  2824. communication lines (see Question 1.4). Kerberos may be adequate 
  2825. for those who do not need the more robust functions and properties of 
  2826. public-key systems. 
  2827.  
  2828.  
  2829. 8.6 What are RC2 and RC4?
  2830.  
  2831. RC2 and RC4 are variable-key-size cipher functions designed by Ron Rivest 
  2832. for fast bulk encryption. They are alternatives to DES (see Question
  2833. 5.1) and are as fast or faster than DES. They can be more secure than 
  2834. DES because of their ability to use long key sizes; they can also be less 
  2835. secure than DES if short key sizes are used.
  2836.  
  2837. RC2 is a variable-key-size symmetric block cipher and can serve as a drop-in
  2838. replacement for DES, for example in export versions of products otherwise
  2839. using DES. RC2 can be used in the same modes as DES (see Question 5.3), 
  2840. including triple encryption. RC2 is approximately twice as fast as DES, 
  2841. at least in software. RC4 is a variable-key-size symmetric stream cipher 
  2842. and is 10 or more times as fast as DES in software. Both RC2 and RC4 are 
  2843. very compact in terms of code size. 
  2844.  
  2845. An agreement between the Software Publishers Association (SPA) and the U.S. 
  2846. government gives RC2 and RC4 special status by means of which the export 
  2847. approval process is simpler and quicker than the usual cryptographic export 
  2848. process. However, to qualify for quick export approval a product must limit 
  2849. the RC2 and RC4 key sizes to 40 bits; 56 bits is allowed for foreign 
  2850. subsidiaries and overseas offices of U.S. companies. An additional 40-bit 
  2851. string, called a salt, can be used to thwart attackers who try to 
  2852. precompute a large look-up table of possible encryptions. The salt is 
  2853. appended to the encryption key, and this lengthened key is used to encrypt 
  2854. the message; the salt is then sent, unencrypted, with the message. RC2 and 
  2855. RC4 have been widely used by developers who want to export their products; 
  2856. DES is almost never approved for export. RC2 and RC4 are proprietary 
  2857. algorithms of RSA Data Security, Inc.; details have not been published.
  2858.  
  2859.  
  2860. 8.7 What is PEM?
  2861.  
  2862. PEM is the Internet Privacy-Enhanced Mail standard, designed, proposed, but 
  2863. not yet officially adopted, by the Internet Activities Board in order to 
  2864. provide secure electronic mail over the Internet. Designed to work with 
  2865. current Internet e-mail formats, PEM includes encryption, authentication, 
  2866. and key management, and allows use of both public-key and secret-key 
  2867. cryptosystems. Multiple cryptographic tools are supported: for each mail 
  2868. message, the specific encryption algorithm, digital signature algorithm, 
  2869. hash function, and so on are specified in the header. PEM explicitly 
  2870. supports only a few cryptographic algorithms; others may be added later. 
  2871. DES in CBC mode is currently the only message encryption algorithm supported, 
  2872. and both RSA and DES are supported for the key management. PEM also supports 
  2873. the use of certificates, endorsing the CCITT X.509 standard for certificate 
  2874. structure. 
  2875.  
  2876. The details of PEM can be found in Internet RFCs (Requests For Comments) 
  2877. 1421 through 1424. PEM is likely to be officially adopted by the Internet 
  2878. Activities Board within one year. Trusted Information Systems has developed
  2879. a free non-commercial implementation of PEM, and other implementations should 
  2880. soon be available as well.
  2881.  
  2882.  
  2883. 8.8 What is RIPEM?
  2884.  
  2885. RIPEM is a program developed by Mark Riordan that enables secure Internet 
  2886. e-mail; it provides both encryption and digital signatures, using RSA and 
  2887. DES routines from RSAREF (see Question 8.10). RIPEM is not fully 
  2888. PEM-compatible; for example, it does not currently support certificates. 
  2889. However, future versions will include certificates and will be fully 
  2890. compliant with the PEM standard. RIPEM is available free for non-commercial 
  2891. use in the U.S. and Canada. To get RIPEM, obtain an ftp account at 
  2892. ripem.msu.edu.
  2893.  
  2894.  
  2895. 8.9 What is PKCS?
  2896.  
  2897. PKCS (Public-Key Cryptography Standards) is a set of standards for 
  2898. implementation of public-key cryptography. It has been issued by RSA 
  2899. Data Security, Inc. in cooperation with a computer industry consortium, 
  2900. including Apple, Microsoft, DEC, Lotus, Sun and MIT. PKCS has been cited 
  2901. by the OIW (OSI Implementors' Workshop) as a method for implementation of 
  2902. OSI standards. PKCS is compatible with PEM (see Question 8.7) but extends 
  2903. beyond PEM. For example, where PEM can only handle ASCII data, PKCS is 
  2904. designed for binary data as well. PKCS is also compatible with the CCITT 
  2905. X.509 standard.
  2906.  
  2907. PKCS includes both algorithm-specific and algorithm-independent 
  2908. implementation standards. Specific algorithms supported include RSA, DES, 
  2909. and Diffie-Hellman key exchange. It also defines algorithm-independent syntax 
  2910. for digital signatures, digital envelopes (for encryption), and certificates; 
  2911. this enables someone implementing any cryptographic algorithm whatsoever to 
  2912. conform to a standard syntax and thus preserve interoperability. Documents 
  2913. detailing the PKCS standards can be obtained by sending e-mail to 
  2914. pkcs@rsa.com or by anonymous ftp to rsa.com.
  2915.  
  2916.  
  2917. 8.10 What is RSAREF?
  2918.  
  2919. RSAREF is a collection of cryptographic routines in portable C source code,
  2920. available at no charge from RSA Laboratories, a division of RSA Data Security,
  2921. Inc. It includes RSA, MD2, MD5, and DES; Diffie-Hellman key exchange will 
  2922. be included in a forthcoming version. It includes both low-level 
  2923. subroutines, such as modular exponentiation, and high-level cryptographic 
  2924. functions, such as verification of digital signatures. The arithmetic routines 
  2925. can handle multiple-precision integers, and the RSA algorithm routines can 
  2926. handle variable key sizes. RSAREF is fully compatible with the PEM and PKCS
  2927. standards.
  2928.  
  2929. RSAREF is available to citizens of the U.S. or Canada and to permanent 
  2930. residents of the U.S. It can be used in personal, non-commercial applications 
  2931. but cannot be used commercially or sent outside the U.S. and Canada. The 
  2932. RSAREF license contains more details on the usage allowed and disallowed. 
  2933. RSAREF is available on the Internet by sending e-mail to 
  2934. rsaref@rsa.com or by ftp to rsa.com.
  2935.  
  2936.  
  2937. 9 Acknowledgements
  2938.  
  2939. I would like to thank the following people, who have provided information 
  2940. and helpful suggestions: Burt Kaliski, Jim Bidzos, Matt Robshaw, Steve Dusse, 
  2941. Kurt Stammberger, George Parsons, John Gilmore, Stuart Haber, Dorothy 
  2942. Denning, and Dennis Branstad. 
  2943.  
  2944.  
  2945. BIBLIOGRAPHY
  2946.  
  2947. 1. American National Standards Institute. Working Draft: American National 
  2948.    Standard X9.30-199X: Public Key Cryptography Using Irreversible 
  2949.    Algorithms for the Financial Services Industry: Part 1: The Digital 
  2950.    Signature Algorithm (DSA). American Bankers Association, Washington, 
  2951.    D.C., March 4, 1993.
  2952.  
  2953. 2. J. Bamford. The Puzzle Palace. Houghton Mifflin, Boston, 1982.
  2954.  
  2955. 3. J.P. Barlow. Decrypting the puzzle palace. Communications of the ACM, 
  2956.    35(7):25--31, July 1992.
  2957.  
  2958. 4. D. Bayer, S. Haber, and W.S. Stornetta. Improving the efficiency and 
  2959.    reliablility of digital time-stamping. In R.M. Capocelli, editor, 
  2960.    Sequences '91: Methods in Communication, Security, and Computer Science, 
  2961.    Springer-Verlag, Berlin, 1992.
  2962.  
  2963. 5. P. Beauchemin, G. Brassard, C. Crepeau, C. Goutier, and C. Pomerance. The 
  2964.    generation of random numbers that are probably prime. J. of Cryptology, 
  2965.    1:53--64, 1988.
  2966.  
  2967. 6. E. Biham and A. Shamir. Differential Cryptanalysis of the Data Encryption 
  2968.    Standard. Springer-Verlag, New York, 1993.
  2969.  
  2970. 7. E. Biham and A. Shamir. Differential cryptanalysis of the full 16-round 
  2971.    DES. In Advances in Cryptology --- Crypto '92, Springer-Verlag, New York, 
  2972.    1993.
  2973.  
  2974. 8. M. Blum and S. Goldwasser. An efficient probabilistic public-key 
  2975.    encryption scheme which hides all partial information. In Advances in 
  2976.    Cryptology --- Crypto '84, pages 289--299, Springer-Verlag, New York, 
  2977.    1985.
  2978.  
  2979. 9. J. Brandt and I. Damgard. On generation of probable primes by incremental 
  2980.    search. In Advances in Cryptology --- Crypto '92, Springer-Verlag, New 
  2981.    York, 1993.
  2982.  
  2983. 10. G. Brassard. Modern Cryptology. Volume 325 of Lecture Notes in Computer 
  2984.     Science, Springer-Verlag, Berlin, 1988.
  2985.  
  2986. 11. D.M. Bressoud. Factorization and Primality Testing. Undergraduate Texts 
  2987.     in Mathematics, Springer-Verlag, New York, 1989.
  2988.  
  2989. 12. E.F. Brickell, D.E. Denning, S.T. Kent, D.P. Maher, and W. Tuchman. 
  2990.     Skipjack Review, Interim Report: The Skipjack Algorithm. July 28, 1993.
  2991.  
  2992. 13. E.F. Brickell and A.M. Odlyzko. Cryptanalysis: A survey of recent 
  2993.     results. Proceedings of the IEEE, 76:578--593, 1988.
  2994.  
  2995. 14. J. Brillhart, D.H. Lehmer, J.L. Selfridge, B. Tuckerman, and S.S. 
  2996.     Wagstaff Jr. Factorizations of b^n +/- 1, b=2,3,5,6,7,10,11,12 up to 
  2997.     High Powers. Volume 22 of Contemporary Mathematics, American 
  2998.     Mathematical Society, Providence, Rhode Island, 2nd edition, 1988.
  2999.  
  3000. 15. J. Buchmann, J. Loho, and J. Zayer. An implementation of the general 
  3001.     number field sieve. In Advances, in Cryptology --- Crypto '93, 
  3002.     Springer-Verlag, New York, 1994. To appear.
  3003.  
  3004. 16. J.P. Buhler, H.W. Lenstra, and C. Pomerance. Factoring integers with 
  3005.     the number field sieve. 1992. To appear.
  3006.  
  3007. 17. M.V.D. Burmester, Y.G. Desmedt, and T. Beth. Efficient zero-knowledge 
  3008.     identification schemes for smart cards. Computer Journal, 35:21--29, 1992.
  3009.  
  3010. 18. K.W. Campbell and M.J. Wiener. Proof that DES is not a group. In 
  3011.     Advances in Cryptology --- Crypto '92, Springer-Verlag, New York, 1993.
  3012.  
  3013. 19. CCITT (Consultative Committee on International Telegraphy and 
  3014.     Telephony). Recommendation X.509: The Directory---Authentication 
  3015.     Framework. 1988.
  3016.  
  3017. 20. Comptroller General of the United States. Matter of National Institute 
  3018.     of Standards and Technology --- Use of Electronic Data Interchange 
  3019.     Technology to Create Valid Obligations. December 13, 1991. File B-245714. 
  3020.  
  3021. 21. D. Coppersmith, A.M. Odlyzko, and R. Schroeppel. Discrete logarithms in 
  3022.     GF(p). Algorithmica, 1:1--15, 1986.
  3023.  
  3024. 22. T.H. Cormen, C.E. Leiserson, and R.L. Rivest. Introduction to Algorithms.
  3025.     MIT Press, Cambridge, Massachusetts, 1990.
  3026.  
  3027. 23. G. Davida. Chosen signature cryptanalysis of the RSA public key
  3028.     cryptosystem. Technical Report TR-CS-82-2, Dept of EECS, University of 
  3029.     Wisconsin, Milwaukee, 1982.
  3030.  
  3031. 24. B. den Boer and A. Bosselaers. An attack on the last two rounds of MD4.
  3032.     In Advances in Cryptology --- Crypto '91, pages 194--203, Springer-Verlag,
  3033.     New York, 1992.
  3034.  
  3035. 25. B. den Boer and A. Bosselaers. Collisions for the compression function 
  3036.     of MD5. In Advances in Cryptology --- Eurocrypt '93, 1993. Preprint.
  3037.  
  3038. 26. Dorothy E. Denning. The Clipper encryption system. American Scientist, 
  3039.     81(4):319--323, July--August 1993.
  3040.  
  3041. 27. W. Diffie. The first ten years of public-key cryptography. Proceedings 
  3042.     of the IEEE, 76:560--577, 1988.
  3043.  
  3044. 28. W. Diffie and M.E. Hellman. Exhaustive cryptanalysis of the NBS Data 
  3045.     Encryption Standard. Computer, 10:74--84, 1977.
  3046.  
  3047. 29. W. Diffie and M.E. Hellman. New directions in cryptography. IEEE 
  3048.     Transactions on Information Theory, IT-22:644--654, 1976.
  3049.  
  3050. 30. T. ElGamal. A public-key cryptosystem and a signature scheme based on 
  3051.     discrete logarithms. IEEE Transactions on Information Theory, 
  3052.     IT-31:469--472, 1985.
  3053.  
  3054. 31. A. Fiat and A. Shamir. How to prove yourself: Practical solutions to 
  3055.     identification and signature problems. In Advances in Cryptology --- 
  3056.     Crypto '86, pages 186--194, Springer-Verlag, New York, 1987.
  3057.  
  3058. 32. S. Goldwasser and S. Micali. Probabilistic encryption. J. of Computer 
  3059.     and System Sciences, 28:270--299, 1984.
  3060.  
  3061. 33. D.M. Gordon. Discrete logarithms using the number field sieve. March 28,
  3062.     1991. To appear. 
  3063.  
  3064. 34. D.M. Gordon and K.S. McCurley. Massively parallel computation of discrete
  3065.     logarithms. In Advances in Cryptology --- Crypto '92, Springer-Verlag, 
  3066.     New York, 1993.
  3067.  
  3068. 35. J. Hastad. Solving simultaneous modular equations of low degree. SIAM J.
  3069.     Computing, 17:336--241, 1988.
  3070.  
  3071. 36. M.E. Hellman. A cryptanalytic time-memory trade off. IEEE Transactions 
  3072.     on Information Theory, IT-26:401--406, 1980.
  3073.  
  3074. 37. D. Kahn. The Codebreakers. Macmillan Co., New York, 1967.
  3075.  
  3076. 38. B.S. Kaliski. A survey of encryption standards. RSA Data Security, Inc.,
  3077.     September 2, 1993.
  3078.  
  3079. 39. B.S. Kaliski Jr., R.L. Rivest, and A.T. Sherman. Is the data encryption 
  3080.     standard a group? J. of Cryptology, 1:3--36, 1988.
  3081.  
  3082. 40. S. Kent. RFC 1422: Privacy Enhancement for Internet Electronic Mail, 
  3083.     Part II: Certificate-Based Key Management. Internet Activities Board, 
  3084.     February 1993.
  3085.  
  3086. 41. D.E. Knuth. The Art of Computer Programming. Volume 2, Addison-Wesley, 
  3087.     Reading, Mass., 2nd edition, 1981. 
  3088.  
  3089. 42. N. Koblitz. A Course in Number Theory and Cryptography. Springer-Verlag, 
  3090.     New York, 1987.
  3091.  
  3092. 43. N. Koblitz. Elliptic curve cryptosystems. Mathematics of Computation, 
  3093.     48:203--209, 1987.
  3094.  
  3095. 44. X. Lai and J.L. Massey. A proposal for a new block encryption standard. 
  3096.     In Advances in Cryptology --- Eurocrypt '90, pages 389--404, 
  3097.     Springer-Verlag, Berlin, 1991. 
  3098.  
  3099. 45. B.A. LaMacchia and A.M. Odlyzko. Computation of discrete logarithms 
  3100.     in prime fields. Designs, Codes and Cryptography, 1:47--62, 1991. 
  3101.  
  3102. 46. S. Landau. Zero knowledge and the Department of Defense. Notices of 
  3103.     the American Mathematical Society, 35:5--12, 1988.
  3104.  
  3105. 47. A.K. Lenstra and H.W. Lenstra Jr. Algorithms in number theory. In J. 
  3106.     van Leeuwen, editor, Handbook of Theoretical Computer Science, MIT 
  3107.     Press/Elsevier, Amsterdam, 1990.
  3108.  
  3109. 48. A.K. Lenstra, H.W. Lenstra Jr., M.S. Manasse, and J.M. Pollard. The 
  3110.     factorization of the ninth Fermat number. 1991. To appear. 
  3111.  
  3112. 49. A.K. Lenstra and M.S. Manasse. Factoring with two large primes. In 
  3113.     Advances in Cryptology --- Eurocrypt '90, pages 72--82, Springer-Verlag, 
  3114.     Berlin, 1991. 
  3115.  
  3116. 50. H.W. Lenstra Jr. Factoring integers with elliptic curves. Ann. of Math., 
  3117.     126:649--673, 1987.
  3118.  
  3119. 51. M. Matsui. Linear cryptanalysis method for DES cipher. In Advances in 
  3120.     Cryptology --- Eurocrypt '93, Springer-Verlag, Berlin, 1993. To appear.
  3121.  
  3122. 52. R.C. Merkle and M.E. Hellman. Hiding information and signatures in 
  3123.     trapdoor knapsacks. IEEE Transactions on Information Theory, 
  3124.     IT-24:525--530, 1978.
  3125.  
  3126. 53. R.C. Merkle and M.E. Hellman. On the security of multiple encryption. 
  3127.     Communications of the ACM, 24:465--467, July 1981. 
  3128.  
  3129. 54. E. Messmer. NIST stumbles on proposal for public-key encryption. Network 
  3130.     World, 9(30), July 27, 1992.
  3131.  
  3132. 55. S. Micali. Fair public-key cryptosystems. In Advances in Cryptology --- 
  3133.     Crypto '92, Springer-Verlag, New York, 1993.
  3134.  
  3135. 56. V.S. Miller. Use of elliptic curves in cryptography. In Advances in 
  3136.     Cryptology --- Crypto '85, pages 417--426, Springer-Verlag, New York, 
  3137.     1986.
  3138.  
  3139. 57. National Institute of Standards and Technology (NIST). The Digital 
  3140.     Signature Standard, proposal and discussion. Communications of the ACM, 
  3141.     35(7):36--54, July 1992.
  3142.  
  3143. 58. National Institute of Standards and Technology (NIST). FIPS Publication 
  3144.     180: Secure Hash Standard (SHS). May 11, 1993.
  3145.  
  3146. 59. National Institute of Standards and Technology (NIST). FIPS Publication 
  3147.     46-1: Data Encryption Standard. January 22, 1988. Originally issued by 
  3148.     National Bureau of Standards.
  3149.  
  3150. 60. National Institute of Standards and Technology (NIST). FIPS Publication 
  3151.     81: DES Modes of Operation. December 2, 1980. Originally issued by 
  3152.     National Bureau of Standards.
  3153.  
  3154. 61. National Institute of Standards and Technology (NIST). Notice of 
  3155.     proposal for grant of exclusive patent license. Federal Register, 
  3156.     58(108), June 8, 1993.
  3157.  
  3158. 62. National Institute of Standards and Technology (NIST). A proposed 
  3159.     Federal Information Processing Standard for an Escrowed Encryption 
  3160.     Standard (EES). Federal Register, 58(145), July 30, 1993.
  3161.  
  3162. 63. National Institute of Standards and Technology (NIST). Publication XX: 
  3163.     Announcement and Specifications for a Digital Signature Standard (DSS).
  3164.     August 19, 1992.
  3165.  
  3166. 64. A.M. Odlyzko. Discrete logarithms in finite fields and their cryptographic
  3167.     significance. In Advances in Cryptology --- Eurocrypt '84, pages 224--314,
  3168.     Springer-Verlag, Berlin, 1984.
  3169.  
  3170. 65. Office of the Press Secretary. Statement. The White House, April 16, 1993.
  3171.  
  3172. 66. J. Pollard. Monte Carlo method for factorization. BIT, 15:331--334, 1975.
  3173.  
  3174. 67. J. Pollard. Theorems of factorization and primality testing. Proc. 
  3175.     Cambridge Philos. Soc., 76:521--528, 1974.
  3176.  
  3177. 68. M.O. Rabin. Digitalized signatures as intractable as factorization. 
  3178.     Technical Report MIT/LCS/TR-212, MIT, 1979.
  3179.  
  3180. 69. R.L. Rivest. Cryptography. In J. van Leeuwen, editor, Handbook of 
  3181.     Theoretical Computer Science, MIT Press/Elsevier, Amsterdam, 1990.
  3182.  
  3183. 70. R.L. Rivest. Finding four million random primes. In Advances in 
  3184.     Cryptology --- Crypto '90, pages 625--626, Springer-Verlag, New York, 
  3185.     1991. 
  3186.  
  3187. 71. R.L Rivest. The MD4 message digest algorithm. In Advances in Cryptology 
  3188.     --- Crypto '90, pages 303--311, Springer-Verlag, New York, 1991. 
  3189.  
  3190. 72. R.L. Rivest. Response to NIST's proposal. Communications of the ACM,
  3191.     35:41--47, July 1992.
  3192.  
  3193. 73. R.L. Rivest. RFC 1321: The MD5 Message-Digest Algorithm. Internet
  3194.     Activities Board, April 1992.
  3195.  
  3196. 74. R.L. Rivest, A. Shamir, and L. Adleman. A method for obtaining digital
  3197.     signatures and public-key cryptosystems. Communications of the ACM, 
  3198.     21(2):120--126, February 1978.
  3199.  
  3200. 75. C.P. Schnorr. Efficient identification and signatures for smart cards.
  3201.     In Advances in Cryptology --- Crypto '89, pages 239--251, 
  3202.     Springer-Verlag, New York, 1990.
  3203.  
  3204. 76. M. Shand and J. Vuillemin. Fast implementations of RSA cryptography. In
  3205.     Proceedings of the 11th IEEE Symposium on Computer Arithmetic, pages 
  3206.     252--259, IEEE Computer Society Press, Los Alamitos, CA, 1993.
  3207.  
  3208. 77. R.D. Silverman. The multiple polynomial quadratic sieve. Math. Comp., 
  3209.     48:329--339, 1987.
  3210.  
  3211. 78. M.E. Smid and D.K. Branstad. Response to comments on the NIST proposed
  3212.     Digital Signature Standard. In Advances in Cryptology --- Crypto '92,
  3213.     Springer-Verlag, New York, 1993.
  3214.  
  3215. 79. J.G. Steiner, B.C. Neuman, and J.I. Schiller. Kerberos: an authentication
  3216.     service for open network systems. In Usenix Conference Proceedings, pages
  3217.     191--202, Dallas, Texas, February 1988.
  3218.  
  3219. 80. M.J. Wiener. Efficient DES key search. August 20, 1993. Presented at 
  3220.     Crypto '93 rump session.
  3221.  
  3222.  
  3223.        --------------------------------------------
  3224.  
  3225. RSA Laboratories is the research and consultation division of RSA Data
  3226. Security, Inc., the company founded by the inventors of the RSA
  3227. public-key cryptosystem. RSA Laboratories reviews, designs and
  3228. implements secure and efficient cryptosystems of all kinds. Its
  3229. clients include government agencies, telecommunications companies,
  3230. computer manufacturers, software developers, cable TV broadcasters,
  3231. interactive video manufacturers, and satellite broadcast companies,
  3232. among others.
  3233.  
  3234. For more information about RSA Laboratories, call or write to 
  3235.                         RSA Laboratories
  3236.                         100 Marine Parkway
  3237.                         Redwood City, CA 94065
  3238.                         (415) 595-7703
  3239.                         (415) 595-4126 (fax)
  3240.  
  3241.  
  3242.  
  3243. PKCS, RSAREF and RSA Laboratories are trademarks of RSA Data
  3244. Security, Inc. All other trademarks belong to their respective 
  3245. companies.
  3246.  
  3247. This document is available in ASCII, Postscript, and Latex formats
  3248. via anonymous FTP to rsa.com:/pub/faq.
  3249.  
  3250. Please send comments and corrections to faq-editor@rsa.com.
  3251.  
  3252.  
  3253.  
  3254. ===
  3255. DISTRIBUTION: How to obtain this document
  3256.  
  3257. This document has been brought to you in part by CRAM, involved in the
  3258. redistribution of valuable information to a wider USENET audience (see
  3259. below). The most recent version of this document can be obtained via
  3260. the author's instructions above. The following directions apply to 
  3261. retrieve the possibly less-current USENET FAQ version.
  3262.  
  3263.   FTP
  3264.   ---
  3265.     This FAQ is available from the standard FAQ server rtfm.mit.edu via
  3266.     FTP in the directory /pub/usenet/news.answers/cryptography-faq/rsa/
  3267.  
  3268.   Email
  3269.   -----
  3270.     Email requests for FAQs go to mail-server@rtfm.mit.edu with commands
  3271.     on lines in the message body, e.g. `help' and `index'.
  3272.  
  3273.   Usenet
  3274.   ------
  3275.     This FAQ is posted every 21 days to the groups
  3276.  
  3277.       sci.crypt
  3278.       talk.politics.crypto
  3279.       alt.security.ripem
  3280.       sci.answers
  3281.       talk.answers
  3282.       alt.answers
  3283.       news.answers
  3284.  
  3285. _ _, _ ___ _, __,  _, _  _, ___ _  _, _, _ _  _, __,  _, _  _ ___ __,
  3286. | |\ | |_ / \ |_)  |\/| / \  |  | / \ |\ | | (_  |_) / \ |  | |_  | )
  3287. | | \| |  \ / | \  |  | |~|  |  | \ / | \| | , ) |   \ / |/\| |   |~\
  3288. ~ ~  ~ ~   ~  ~  ~ ~  ~ ~ ~  ~  ~  ~  ~  ~ ~  ~  ~    ~  ~  ~ ~~~ ~  ~
  3289.  
  3290. ===
  3291. CRAM: The Cyberspatial Reality Advancement Movement
  3292.  
  3293. In an effort to bring valuable information to the masses, and as a
  3294. service to motivated information compilers, a member of CRAM can help
  3295. others unfamiliar with Usenet `publish' their documents for
  3296. widespread dissemination via the FAQ structure, and act as a
  3297. `sponsor' knowledgable in the submissions process. This document is
  3298. being distributed under this arrangement.
  3299.  
  3300. We have found these compilations tend to appear on various mailing
  3301. lists and are valuable enough to deserve wider distribution. If you
  3302. know of an existing compilation of Internet information that is not
  3303. currently a FAQ, please contact us and we may `sponsor' it. The
  3304. benefits to the author include:
  3305.  
  3306. - use of the existing FAQ infrastructure for distribution:
  3307.   - automated mail server service
  3308.   - FTP archival
  3309.   - automated posting
  3310.  
  3311. - a far wider audience that can improve the quality, accuracy, and 
  3312.   coverage of the document enormously through email feedback
  3313.  
  3314. - potential professional inquiries for the use of your document in 
  3315.   other settings, such as newsletters, books, etc.
  3316.  
  3317. - with us as your sponsor, we will also take care of the 
  3318.   technicalities in the proper format of the posted version and 
  3319.   updating procedures, leaving you free of the `overhead' to focus on 
  3320.   the basic updates alone
  3321.  
  3322. The choice of who we `sponsor' is entirely arbitrary. You always have
  3323. the option of handling the submission process yourself.  See the FAQ
  3324. submission guidelines FAQ in news.answers. 
  3325.  
  3326. For information, send mail to <tmp@netcom.com>.
  3327.  
  3328.  \   \   \   \   \   \   \   \   \   |   /   /   /   /   /   /   /   /   /   /
  3329.           _______       ________          _____        _____  _____
  3330.          ///   \\\      |||   \\\        /// \\\       |||\\\///|||
  3331.         |||     ~~      |||   ///       |||   |||      ||| \\// |||
  3332.         |||     __      |||~~~\\\       |||~~~|||      |||  ~~  |||
  3333.          \\\   ///      |||    \\\      |||   |||      |||      |||
  3334.           ~~~~~~~       ~~~     ~~~     ~~~   ~~~      ~~~      ~~~
  3335.  /   /   /   /   /   /   /   /   /   |   \   \   \   \   \   \   \   \   \   \
  3336.  
  3337. C y b e r s p a t i a l  R e a l i t y  A d v a n c e m e n t  M o v e m e n t
  3338.  
  3339. * CIVILIZING CYBERSPACE: send `info cypherwonks' to majordomo@lists.eunet.fi *
  3340.  
  3341.  
  3342.