home *** CD-ROM | disk | FTP | other *** search
/ The Hacker's Encyclopedia 1998 / hackers_encyclopedia.iso / pc / crypto / pgp.up < prev    next >
Encoding:
Text File  |  2003-06-11  |  20.2 KB  |  368 lines

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