home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / etc / misc / codering.txt < prev    next >
Encoding:
Text File  |  2003-06-11  |  20.0 KB  |  361 lines

  1.  
  2. THE INTERNET CODE RING!
  3. An Interview with Phil Zimmerman, creator of PGP
  4.  
  5. We were sitting in a circle on the floor at the Computers, Freedom, 
  6. and Privacy conference, March '93 in San Francisco, St. Jude and I 
  7. with Tom Jennings, Fen La Balme, et al, discussing encryption and 
  8. other neophiliac rants when a dapper fellow wandered by with a 
  9. beard on his face and a tie hanging from his neck. He picked up 
  10. Jude's copy of bOING-bOING number 10 and glanced through it, 
  11. clearly interested. I later learned that this was Phil Zimmerman, 
  12. creator of PGP ("Pretty Good Privacy"), so I tracked him down and 
  13. we talked for the record.
  14.  
  15. Jon: I'm fairly nontechnical, and I'm also new to encryption. I spent 
  16. some time recently on the cypherpunks' list, and I have a pretty 
  17. good sense of what's going on, but maybe you can tell me in your 
  18. own words how you came to write PGP, and what your philosophy 
  19. is, especially with distribution.
  20.  
  21. Phil: Well, okay. PGP, which means "Pretty Good Privacy" is a 
  22. public key encryption program, it uses a public key encryption 
  23. algorithm, which means that you can encrypt messages and you can 
  24. send them to people that you've never met, that you've never had a 
  25. chance to exchange keys with over a secure channel. With regular 
  26. encryption, the kind that everybody has heard about, you encrypt a 
  27. message, it scrambles it up, renders it unintelligible, and then you 
  28. send it to someone else, and they can descramble it, decrypting it. 
  29. They have to use the same key to decrypt it as you used to encrypt 
  30. it. Well, this is a problem, this is inconvenient, because how are you 
  31. going to tell them what that key is, what're you going to do, tell 
  32. them over the telephone? If someone can intercept the message, they 
  33. can intercept the key. So this has been the central problem in 
  34. cryptography for the past couple of millenia. There's been a lots of 
  35. different ways of encrypting information, but they all have this 
  36. problem.
  37.         If you had a secure channel for exchanging keys, why do you 
  38. need any cryptography at all? So, in the late 1970s, somebody came 
  39. up with an idea for encrypting information with two keys. The two 
  40. keys are mathematically related. You use one of the keys to encrypt 
  41. the message, and use the other key to decrpyt the message. As a 
  42. matter of fact, the keys have a kind of yin-yang relationship, so that 
  43. either one of them can decrypt what the other one can encrypt. So 
  44. everybody randomly generates a pair of these keys, the keys are 
  45. mathematically related, and they can be split apart like cracking a 
  46. coin in half, and the jagged edges stick together just right. They can 
  47. publish one of the keys, and keep the other one secret. Now, unlike 
  48. cracking the coin in half, you can't look at the jagged edge, and 
  49. figure out what the other jagged edge is going to look like. In fact, 
  50. you can't look at the published key and figure out what the secret 
  51. key is without spending centuries of supercomputer time to do it. 
  52. This means that any time anybody wants to send you a message, 
  53. they can encrypt that message with your public key, and then you 
  54. can decrypt the message with your secret key. If you want to send 
  55. them a message, then you can encrypt the message with their public 
  56. key, and then they can decrypt it with their secret key. Everybody 
  57. who wants to participate in this system can generate a pair of these 
  58. keys, publish one of them, and keep the other one secret. 
  59. Everybody's published key can end up in a big public key directory, 
  60. like a phone book, or an electronic bulletin board, or something like 
  61. that. You can look up somebody's public key, encrypt a message to 
  62. them, and send it to them. They're the only ones that can read it, 
  63. because they're the only ones that have the corresponding secret 
  64. key. 
  65.  
  66. J: Are there any such directories now?
  67.  
  68. P: Well, actually, there are starting to be directories like that. For 
  69. PGP, there are some public key directories on Internet. You can just 
  70. send an electronic inquiry saying "Give me the key for 
  71. [somebody]," and it'll send you their key back, their public key. 
  72.  
  73. J: The convention I've seen has been the inclusion of the public key 
  74. in an email message posted to a mailing list.
  75.  
  76. P: You can do that, you can include your own public key when you 
  77. send a message to someone, so that when they send you a reply, 
  78. they'll know what public key to use to send the reply. But the 
  79. problem...there is an achilles heel with public key cryptography, and 
  80. I'll get to that in a minute. But first, let me explain authentication. If 
  81. I want to send you a message, and prove that it came from me, I can 
  82. do that by encrypting it with my own secret key, and then I can 
  83. send you the message, and you can decrypt it with my public key. 
  84. Remember I said that the keys are in this yin-yang relationship, so 
  85. that either one can decrypt what the other one encrypts. If I don't 
  86. care about secrecy, if I only cared about authentication, if I only 
  87. wanted to prove to you that the message came from me, I could 
  88. encrypt the message with my own secret key and send it to you, and 
  89. you could decrypt it with your public key. Well, anyone else could 
  90. decrypt it to, because everyone has my public key. If I want to 
  91. combine the features of secrecy and authentication, I can do both 
  92. steps: I can encrypt the message first with my own secret key, 
  93. thereby creating a signature, and then encrypt it again with your 
  94. public key. I then send you the message. You reverse those steps: 
  95. first you decrypt it with your own secret key, and then you decrypt 
  96. that with my public key. That's a message that only you can read 
  97. and only I could have sent. We have secrecy and authentication. So 
  98. you get authentication by using your own secret key to decrypt a 
  99. message, thereby signing the message. You can also convince third 
  100. parties like a judge that the message came from me. That means that 
  101. I could send you a financial instrument, a legal contract or some 
  102. kind of binding agreement. The judge will believe that the message 
  103. did come from me, because I am the only person with the secret key, 
  104. that could have created that message.
  105.         Now, public key cryptography has an achilles heel, and that 
  106. achilles heel is that, suppose you want to send a message to someone, 
  107. and you look up their public key, on a bulletin board, for example. 
  108. You take their public key and you encrypt the message and then 
  109. send it to them, and presumably only they can read it. Well, what if 
  110. Ollie North broke into that BBS system? And he subsituted his own 
  111. public key for the public key of your friend. And left your friend's 
  112. name on it, so that it would look like it belonged to your friend. But 
  113. it really wasn't your friend's public key, it was Ollie's public key that 
  114. he had created just for this purpose. You send a message, you get the 
  115. bulletin board to tell you your friend's public key, but it isn't your 
  116. friend's public key, it's Ollie's public key. You encrypt a message 
  117. with that. You send it, possibly through the same bulletin board, to 
  118. your friend. Ollie intercepts it, and he can read it because he knows 
  119. the secret key that goes with it. If you were particularly clever, 
  120. which Ollie North isn't because we all know that he forgot to get 
  121. those White House backup tapes deleted...but suppose he were 
  122. clever, he would then re-encrypt the decrypted message, using the 
  123. stolen key of your friend, and send it to your friend so that he 
  124. wouldn't suspect that anything was amiss. This is the achilles' heel of 
  125. public key cryptography, and all public key encryption packages 
  126. that are worth anything invest a tremendous amount of effort in 
  127. solving this one problem. Probably half the lines of code in the 
  128. program are dedicated to solving this one problem. PGP solves this 
  129. problem by allowing third parties, mutually trusted friends, to sign 
  130. keys. That proves that they came from who they said they came 
  131. from. Suppose you wanted to send me a message, and you didn't 
  132. know my public key, but you know George's public key over here, 
  133. because George have you his public key on a floppy disk. I publish 
  134. my public key on a bulletin board, but before I do, I have George 
  135. sign it, just like he signs any other message. I have him sign my 
  136. public key, and I put that on a bulletin board. If you download my 
  137. key, and it has George's signature on it, that constitutes a promise 
  138. by George that that key really belongs to me. He says that my name 
  139. and my key got together. He signs the whole shootin' match. If you 
  140. get that, you can check his signature, because you have his public 
  141. key to check. If you trust him not to lie, you can believe that really is 
  142. my public key, and if Ollie North breaks into the bulletin board, he 
  143. can't make it look like his key is my key, because he doesn't know 
  144. how to forge a signature from George. This is how public key 
  145. encryption solves the problem, and in particular, PGP solves it by 
  146. allowing you to designate anyone as a trusted introducer. In this 
  147. case, this third party is a trusted introducer, you trust him to 
  148. introduce my key to you. 
  149.         There are public key encryption packages currently being 
  150. promoted by the U.S. Government based on a standard called 
  151. Privacy Enhanced Mail, or PEM. PEM's architecture has a central 
  152. certification authority that signs everybody's public key. If everyone 
  153. trusts the central authority to sign everyone's key, and not to lie, 
  154. then everyone can trust that they key they have is a good key. The 
  155. key actually belongs to the name that's attached to it. But a lot of 
  156. people, especially people who are libertarian-minded, would not feel 
  157. comfortable with an approach that requires them to trust a central 
  158. authority. PGP allows grassroots distributed trust, where you get to 
  159. choose who you trust. It more closely follows the social structures 
  160. that people are used to. You tend to believe your friends. 
  161.  
  162. J: Did you make a conscious decision up front, before you started 
  163. programming PGP, that you were going to create something that 
  164. would be distributed in this grassroots way, free through the 
  165. Internet.
  166.  
  167. P: Well, there were some software parts of PGP that I developed 
  168. some years ago, as far back as 1986, that I developed with the 
  169. intention of developing commercial products with it someday. Over 
  170. the years that followed, I developed a few more pieces that I hoped 
  171. someday to turn into a commercial product. But, when it finally 
  172. came down to it, I realized that it would be more politically effective 
  173. to distribute PGP this way. Besides that, there is a patent on the 
  174. RSA public key encryption algorithm that PGP is based on. I wrote 
  175. all of the software from scratch. I didn't steal any software from the 
  176. RSA patent holders. But patent law is different from copyright law. 
  177. While I didn't steal any software from them, I did use the algorithm, 
  178. the mathematical formulas that were published in academic journals, 
  179. describing how to do public key cryptography. I turned those 
  180. mathematical formulas into lines of computer code, and developed it 
  181. independently.
  182.  
  183. J: Did you originally intend to license that?
  184.  
  185. P: When I first wrote the parts of it back in 1986, I did. But I began 
  186. in earnest on PGP in December of 1990. At that time, I had decided 
  187. that I was going to go ahead and publish it for free. I thought that it 
  188. was politically a useful thing to do, considering the war on drugs 
  189. and the government's attitude toward privacy. Shortly after I stared 
  190. on the development, I learned of Senate Bill 266, which was the 
  191. Omnibus Anticrime Bill. It had a provision tucked away in it, a sense 
  192. of Congress provision, that would, if it had become real hard law, 
  193. have required manufacturers of secure communications gear, and 
  194. presumably cryptographic software, to put back doors in their 
  195. products to allow the government to obtain the plain text contents 
  196. of the traffic. I felt that it would be a good idea to try to get PGP out 
  197. before this became law. As it turned out, it never did pass. It was 
  198. defeated after a lot of protest from civil liberties groups and industry 
  199. groups.
  200.  
  201. J: But if they could get away with passing it, they would still take the 
  202. initiative and try.
  203.  
  204. P: Well, yeah, actually...it started out as a sense of Congress bill, 
  205. which means that it wasn't binding law. But those things are usually 
  206. set to deploy the political groundwork to make it possible later to 
  207. make it into hard law. Within a week or so after publishing PGP, 
  208. Senate Bill 266 went down in defeat, at least that provision was 
  209. taken out, and that was entirely due to the efforts of others, I had 
  210. nothing to do with that. PGP didn't have any impact, it turned out, 
  211. at all. So that's why I published PGP.
  212.  
  213. J: Several of my friends are involved in cypherpunks, and I've been 
  214. on their mailing list...are you affiliated in any way with 
  215. cypherpunks? Are you getting their mailing list?
  216.  
  217. P: I was on their mailing list for a couple of days, but I found that 
  218. the density of traffic was high enough that I couldn't get any work 
  219. done, so I had them take me off the list.
  220.  
  221. J: The reason I bring cypherpunks up is that they seem to have 
  222. almost a religious fervor about encryption <laughs>. I was 
  223. wondering if you share that.
  224.  
  225. P: I don't think of my own interest in cryptography as a religious 
  226. fervor. I did miss some mortgage payments while I was working on 
  227. PGP. In fact, I missed five mortgage payments during the 
  228. development of PGP, so I came pretty close to losing my house. So I 
  229. must have enough fervor to stay with the project long enough to 
  230. miss five mortgage payments <laughter>. But I don't think it's a 
  231. religious fervor.
  232.  
  233. J: I'm impressed with the way encryption in general and PGP in 
  234. particular have caught on with the press, how it's become within the 
  235. last year.
  236.  
  237. P: Well, PGP 1.0 was released in June of '91. It only ran on MS 
  238. DOS, and it didn't have a lot of the features necessary to do really 
  239. good key certification, which is that achilles' heel that I told you 
  240. about. Theoretically, you could use it in a manual mode to do that, 
  241. but it wasn't automatic like it is in PGP 2.0 and above. The current 
  242. release of PGP is 2.2. It's a lot smoother and more polished that 2.0 
  243. was. 2.0 was tremendously different than 1.0, and the reason the 
  244. popularity has taken off so much since September, when it was 
  245. released, is because it ran on a lot of UNIX platforms, beginning 
  246. with 2.0. Since the main vehicle for Internet nodes is UNIX 
  247. platforms, that made it more popular in the UNIX/Internet world. 
  248. Since Internet seems to be the fertile soil of discourse on 
  249. cryptography, the fact that PGP 2.0 began running on UNIX 
  250. platforms has a lot to do with it's popularity since that version was 
  251. released...Tthat was in September of '92.
  252.  
  253. J: The easiest way to get PGP is through FTP from various sites?
  254.  
  255. P: Yeah. Most of them European sites. PGP 2.0 and above was 
  256. released in Europe. The people that were working on it were out of 
  257. reach of U.S. patent law...and not only are they out of reach of patent 
  258. law, but it also defuses the export control issues, because we're 
  259. importing it into the U.S., instead of exporting it. Also PGP 1.0 was 
  260. exported, presumably by somebody, any one of thousands of people 
  261. could have done it...but it was published in the public domain. It's 
  262. hard to see how something like that could be published, and 
  263. thousands of people could have it, and it could not leak overseas. It's 
  264. like saying that the New York Times shouldn't be exported, how can 
  265. you prevent that when a million people have a copy? It's blowing in 
  266. the wind, you can't embargo the wind.
  267.  
  268. J: And by beginning in Europe, you sort of fanned the flame that 
  269. much better.
  270.  
  271. P: Yeah.
  272.  
  273. J: It seems to have spread globally, and I'm sure that you're hearing a 
  274. lot about it, getting a lot of response.
  275.  
  276. P: Particularly at this conference (CFP93), yes.
  277.  
  278. J: Do you plan to do more development of PGP, or are you satisfied 
  279. with where it is....
  280.  
  281. P: PGP will be developed further. My personal involvement is more 
  282. in providing design direction and making sure that the architecture 
  283. stays sound. The actual coding is taking place overseas, or at least 
  284. most of it is. We do get patches sent in by people in the U.S. who 
  285. find bugs, and who say, "I found this bug, here's a patch to fix it." 
  286. But the bulk of the work is taking place outside the U.S. borders. 
  287.  
  288. J: Is there a Mac version as well as a DOS version now?
  289.  
  290. P: Yeah, there is a Mac version...there was a Mac version released 
  291. shortly after PGP 2.0 came out. Somebody did that independently, 
  292. and I only found out about it after it was released. People have 
  293. written me about it, and it did seem to have some problems. The 
  294. same guy who did that version is doing a much improved version, 
  295. Mac PGP version 2.2, which I believe should be out in a few 
  296. days...that was the last I heard before I came to the conference. The 
  297. second Mac development group, that's working on a very "Mac"-ish 
  298. GUI, is being managed by a guy named Blair Weiss. That takes 
  299. longer, it's difficult to write a good Mac application, so it's probably 
  300. going to be a couple of months before that hits the streets. 
  301.  
  302. J: Were you involved in the UNIX version, too?
  303.  
  304. P: I did the first MS-DOS version entirely by myself, but it's not 
  305. that big a distance between MS-DOS and UNIX, so most of it was 
  306. the same. The UNIX board took place soon after PGP 1.0 was 
  307. released. After that, many other enhancements were added, and 
  308. major architectural changes took place to the code, and that's what 
  309. finally made its way out as version 2.0.
  310.  
  311. J: You're doing consulting now?
  312.  
  313. P: That's how I make my living, by consulting. I don't make 
  314. anything from PGP.
  315.  
  316. J: Do you think you'll just let PGP take a life of its own, let other 
  317. people work on it from here out?
  318.  
  319. P: Other people are contributing their code, and other people are 
  320. adding enhancements, with my design direction. Perhaps someday 
  321. I'll find a way to make money from PGP, but if I do, it will be done 
  322. in such a way that there will always be a free version of PGP 
  323. available. 
  324.  
  325. J: I was thinking of the UNIX thing, where everybody's modified 
  326. their versions of the UNIX Operating System so that some 
  327. [customized versions] weren't even interoperable. I was wondering 
  328. if there was a chance that PGP would mutate, whether you're going 
  329. to keep some sort of control over it, or whether people will start 
  330. doing their onw versions of it....
  331.  
  332. P: Well, I don't know, that could happen. There are so many people 
  333. interested in the product now, it's hard to keep track of everybody's 
  334. changes. When they send in suggested changes, we have to look at it 
  335. carefully to see that the changes are good changes.
  336.  
  337. J: But you don't have some sort of structure in place where you do 
  338. some kind of approval if somebody wants to make some kind of 
  339. mutant version of PGP....
  340.  
  341. P: There is a kind of de facto influence that I have over the product, 
  342. because it's still my product, in a kind of psychological sense. In the 
  343. user population, they associate my name with the product in such a 
  344. way that, if I say that this product is good, that I have looked at this 
  345. and that I believe the changes made sense the last version are good 
  346. changes, that people will believe that. So I can determine the 
  347. direction, not by some iron law, not by having people work for me 
  348. that I can hire and fire, but more by my opinion guiding the product. 
  349. It would not be easy for a person to make a different version of PGP 
  350. that went in a different direction than how I wanted it to go, because 
  351. everybody still uses the version that I approved, so to be 
  352. compatible...this has a kind of intertia to it, a de facto standard. PGP 
  353. currently, I believe, is the world's most popular public key 
  354. encryption program, so that has potential to become a de facto 
  355. standard. I don't know what that means in comparison to the PEM 
  356. standard. PEM is for a different environment than PGP, perhaps, 
  357. although the PGP method of certifying keys can be collapsed into a 
  358. special case that mimics in many respects the PEM model for 
  359. certifying keys.
  360.  
  361.