<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Pgp on Shell&#39;s Home</title>
		<link>//blog.shell909090.org/tags/pgp/</link>
		<description>Recent content in Pgp on Shell&#39;s Home</description>
		<generator>Hugo</generator>
		<language>en-us</language>
		
		
		
			<copyright>CC-BY-SA4.0</copyright>
		
		
			<lastBuildDate>Mon, 14 Sep 2009 13:53:00 +0800</lastBuildDate>
		
			<atom:link href="//blog.shell909090.org/tags/pgp/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>软件自由英雄谱</title>
				<link>//blog.shell909090.org/blog/archives/78/</link>
				<pubDate>Mon, 14 Sep 2009 13:53:00 +0800</pubDate>
				<guid>//blog.shell909090.org/blog/archives/78/</guid>
				<description>&lt;p&gt;谨以此缅怀那些为了今日软件事业的自由做出贡献的先辈们。(注1:多数人没牺牲，谢谢)(注2: 排名不分先后)(注3: 科普作品，大家别怕)&lt;/p&gt;&#xA;&lt;p&gt;我在撰写这篇文章的时候，避免使用自由软件这个词，而改为更普遍意义上的软件自由。因为自由软件是RMS提出的一个专有词语，指软件的开源，复制，协作等&lt;/p&gt;&#xA;&lt;p&gt;特质。而我试图通过软件自由这个词，表达人们在使用软件上的自由，以及使用软件来为我们获取自由。我们拥有知道软件一切内幕的自由，我们拥有修改软件的自由，我们拥有思考的自由，我们拥有挑战老系统的自由，我们拥有拒绝通过软件收费的自由，我们拥有通过软件获得信息的自由，我们拥有不受任何人，包括政府监控的自由。为了这种自由而付出的，不仅是自由程序的拥护者，也有商业程序的拥护者。&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Richard Matthew Stallman&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;大名鼎鼎的RMS，GNU的核心人物，自由软件的布道者。要是在这个列表上没有他的名字，那我不知道还有谁能留在这张表上。具体可以看这里(&lt;a href=&#34;http://zh.wikipedia.org/zh-cn/%E7%90%86%E6%9F%A5%E5%BE%B7%C2%B7%E6%96%AF%E6%89%98%E6%9B%BC&#34;&gt;http://zh.wikipedia.org/zh-cn/%E7%90%86%E6%9F%A5%E5%BE%B7%C2%B7%E6%96%AF%E6%89%98%E6%9B%BC&lt;/a&gt;)。简单来说这家伙最大的几个成就：创立了GNU和FSF，为自由软件的传播奠定了基础。制作了emacs，当今黑客世界两大编辑器之一(另一个是VIM)。制作了GCC，世界上使用最广泛的编译器。&lt;/p&gt;&#xA;&lt;p&gt;RMS的核心想法是，因为软件而收费是罪恶的，这种人是撒旦(当然，Bill Gates是其中最大的那个)。他认为软件应当自由分享，程序员从中收取的应当是服务费。今天，RedHat正是继承了这一模式。通过免费的软件和收费的服务来进行持续的开发。&lt;/p&gt;&#xA;&lt;p&gt;2.Linus Benedict Torvalds&lt;/p&gt;&#xA;&lt;p&gt;常常和RMS并提的一个家伙，具体在这里(&lt;a href=&#34;http://zh.wikipedia.org/zh-cn/%E6%9E%97%E7%BA%B3%E6%96%AF%C2%B7%E6%89%98%E7%93%A6%E5%85%B9&#34;&gt;http://zh.wikipedia.org/zh-cn/%E6%9E%97%E7%BA%B3%E6%96%AF%C2%B7%E6%89%98%E7%93%A6%E5%85%B9&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;一个低调又火爆的家伙，没有什么太多言论，但经常语出惊人，最有名的是以“一群自慰的猴子”(OpenBSD crowd is a bunch of masturbating monkeys)来形容OpenBSD的团队。最大的成就就是写了个操作系统——没错，就是叫Linux的那个。&lt;/p&gt;&#xA;&lt;p&gt;3.Donald Ervin Knuth&lt;/p&gt;&#xA;&lt;p&gt;哈，这个人就不像上两个那么广为人知了。他(可不能叫这家伙，得敬老)有个中文名字，叫高德纳，页面在这里(&lt;a href=&#34;http://zh.wikipedia.org/zh-cn/%E9%AB%98%E5%BE%B7%E7%BA%B3&#34;&gt;http://zh.wikipedia.org/zh-cn/%E9%AB%98%E5%BE%B7%E7%BA%B3&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;最大的成就是写了本书，叫做《计算机程序设计艺术》。有意思的是，写到一半的时候，觉得现在(那是上世纪80年代的事情)的排版软件不爽——于是自己下手，写了一个叫做Tex的排版系统——然后再回来继续写书。这本书算起来已经写了30多年了，估计成书时间和《浮士德》有的一拼。而Tex是当今高端排版中最流行的系统(多数都不是直接拿来用，而是用了LaTex之类的包装)，如果有向国际期刊投稿过的应该有印象。Tex也是被誉为最接近完美的程序，它的介绍在这里(&lt;a href=&#34;http://zh.wikipedia.org/zh-cn/TeX&#34;&gt;http://zh.wikipedia.org/zh-cn/TeX)。&lt;/a&gt;%E3%80%82)他的版本号是以圆周率为基准的，头一个版本叫3，后一个叫3.1，以此类推。目前的版本号是3.1415926，刚好是祖冲之的密率。高伯伯曾表示，等他死之后，版本号就改为π，剩下的bug就作为程序的功能放在那里。&lt;/p&gt;&#xA;&lt;p&gt;有一个未经证实的故事。据说上世纪Internet还没出现的时候，美国军方找人设计了TCP/IP协议，他们希望有人为他们实现基于Unix的TCP/IP协议栈。于是他们花了四千万美金，找人写了一个协议栈，并且拿到高伯伯的学校去用。对此高伯伯非常不满意——别误会，我指的是实现的效果。于是就自己花了点时间写了一个，结果比原版的协议栈更快速而稳定。美国军方觉得非常困惑，问他是怎么做的。高伯伯说，读你们的协议，然后编码。&lt;/p&gt;&#xA;&lt;p&gt;4.Andrew Stuart Tanenbaum&lt;/p&gt;&#xA;&lt;p&gt;这个知道的人也不会太多，当然，职业玩家例外。当初AT&amp;amp;T禁止UNIX7的代码公布，因此大学里面都没什么实际产品可以用来教操作系统这门课。&lt;/p&gt;&#xA;&lt;p&gt;于是，有个叫AST的老师就怒了，你不让我干，我自己干。于是写了一个叫做Minix的系统，并且还写了本书，叫做《操作系统：设计和实现》。后来有个学生，觉得这个系统改改能干别的，于是给AST去信。AST说，改什么改，我写这东西是拿来教书的。于是这个学生就自己写了一个系统——对了，这个学生就是上面的Linus，而那个系统，就是大名鼎鼎的Linux。&lt;/p&gt;&#xA;&lt;p&gt;时至今日，Minux已经发展到了第三版(他的版本号是跟着书走的，第一版，第二版，第三版&amp;hellip;)，是大多数大学里面教授操作系统基础原理的标准教材。&lt;/p&gt;&#xA;&lt;p&gt;同时，也在嵌入式系统等领域有非常大的应用。但是，由于AST还是坚持他的教学和精简原则，因此在桌面和服务器领域就别指望了。关于AST，大家可以看这里(&lt;a href=&#34;http://en.wikipedia.org/wiki/Andrew_S._Tanenbaum&#34;&gt;http://en.wikipedia.org/wiki/Andrew_S._Tanenbaum&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;5.Ian Murdock&lt;/p&gt;&#xA;&lt;p&gt;这个人很多人都听过，不过看着名字还是认不出来。他是Debian系统的作者，具体可以看这里(&lt;a href=&#34;http://en.wikipedia.org/wiki/Ian_Murdock&#34;&gt;http://en.wikipedia.org/wiki/Ian_Murdock&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;Debian有什么特殊呢？其实就本身来说，Debian并不算特别成功。但是Debian有庞大的衍生系统群，更有Ubuntu这样充满活力的发行。&lt;/p&gt;&#xA;&lt;p&gt;Linux世界有所谓三大发行，四大包管理系统之说。其中三大发行指三个在世界上最广泛用于服务器的发行版本，即RedHat Enterprise Linux，SuSe，Debian，其中只有Debian是无服务商支持的。而四大包管理系统就是指RH的RPM系统，Debian的APT系统，arch的PCMAN系统，和Gentoo的emerge系统。&lt;/p&gt;&#xA;&lt;p&gt;6.Ken Thompson&lt;/p&gt;&#xA;&lt;p&gt;有没有听说过？至少看着眼熟吧。这家伙是贝尔实验室的，最大成就就一个：Unix作者。详细内容请看这里(&lt;a href=&#34;http://en.wikipedia.org/wiki/Ken_Thompson&#34;&gt;http://en.wikipedia.org/wiki/Ken_Thompson&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;7.Dennis Ritchie&lt;/p&gt;&#xA;&lt;p&gt;没听说过？也很眼熟？这家伙和上面那位是朋友，最大成就也就一个：给上面那位提供了基础语言，C语言。详细内容请看这里(&lt;a href=&#34;http://en.wikipedia.org/wiki/Dennis_Ritchie&#34;&gt;http://en.wikipedia.org/wiki/Dennis_Ritchie&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;8.Bjarne Stroustrup&lt;/p&gt;&#xA;&lt;p&gt;又是一个怎么看怎么眼熟的家伙？那当然。他和上面两位不怎么熟，不过他们都是一路的。他是C++的作者，详细内容请看这里(&lt;a href=&#34;http://en.wikipedia.org/wiki/Bjarne_Stroustrup&#34;&gt;http://en.wikipedia.org/wiki/Bjarne_Stroustrup&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;9.Phil Katz&lt;/p&gt;&#xA;&lt;p&gt;这个就很少有人知道了吧，不过大家肯定天天和他打交道。大家用记事本打开任意一个ZIP文件，开始的两个字肯定是PK，这就是Phil Katz，具体请看这里(&lt;a href=&#34;http://en.wikipedia.org/wiki/Phil_Katz&#34;&gt;http://en.wikipedia.org/wiki/Phil_Katz&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;这是一个有点悲剧的人物。在上个世纪的时候，大家还在BBS上混。由于速度有限，因此下载站的资源都是压缩提供的(当然，直到今天肯定还是如此)。最初的压缩格式大多是ACE的，这是一家商业公司，直到今天还活着。由于PK不满意这家公司的压缩软件，压缩率低，速度慢，而且还不断提出高昂的收费。因此他决定自己写一个压缩软件，就是最初的PKZIP。由于软件免费提供使用，压缩率高，解压速度快，因此很多站长自发的将数据格式转换为ZIP。后来PK就干脆开了PKWARE软件公司，免费发行压缩程序代码，同时提供方便使用的图形界面版本。&lt;/p&gt;&#xA;&lt;p&gt;但是非常可悲的，由于格式开放，因此这个软件有个非常大的竞争者，winzip。我想有些Win95时代的老用户还记得这个软件。PK在软件开发上很有天分，但是在市场策略上却不很成功。WinZip对ZIP格式的熟悉其实比不上PK(那当然，人家是原作者)，然而WinZip却拥有很多用户友好的特性，右键菜单解压，虚拟解压(将压缩包的内容临时虚拟成一个目录，用户可以无缝的使用，XP中集成了这个功能，但是WinZip的虚拟解压很容易撤销)。所以最终PK的软件公司破产了。他本人在2000年4月14日因饮酒过度，在一家小旅馆内死去。&lt;/p&gt;&#xA;&lt;p&gt;至于WinZip呢？碰到了一个更强大的对手，WinRar。功能类似，但更简洁，最主要是支持大多数流行的压缩格式。因此目前压缩软件领域还是WinRar占据着主流，市场就是这么残酷。&lt;/p&gt;&#xA;&lt;p&gt;10.Phil Zimmermann&lt;/p&gt;&#xA;&lt;p&gt;这个人基本没人知道，但是却是这张表里面最典型和突出的一个人。他是PGP的作者，具体可以看这里(&lt;a href=&#34;http://en.wikipedia.org/wiki/Philip_Zimmermann&#34;&gt;http://en.wikipedia.org/wiki/Philip_Zimmermann&lt;/a&gt;)。他的成就很难用一句话说明，要阐明他的成就，就必须从美国的国家安全出口管制说起。&lt;/p&gt;&#xA;&lt;p&gt;在上个世纪，美国政府有一种观点，他们需要能随时随地的窃听任何一个人和其他人的通讯。同时，作为延伸，他们制定了国家安全出口法案，将密码产品作为军用管制品，限制出口。这其实是很荒谬和不合逻辑的，任何公开的算法都可以被多个人独立的实现。只要算法是公开的，即使产品不允许出口，国外也可以没有任何阻碍的实现出来。而如果算法是不公开的，则会出现两个弊端。一个是阻碍密码学的交流和进步，更麻烦的是，根据密码学的内在逻辑，这样的系统，由于验证不完全，因此比公开的系统更加不安全。&lt;/p&gt;&#xA;&lt;p&gt;在1991年前后，PZ制作了PGP软件，用于保障当时备受争议的电子邮件的安全(小常识:电子邮件默认是明文的，安全程度和你写在明信片背面寄给你父母的句子差不多)。这个软件使用了1980年以来提出的现代密码系统几大密码系统，实现了签名安全和秘密安全。这里我们小小的讲解一下电子邮件的两大安全系统，对此无爱的人自行跳到下一段。签名安全就是指，你收到一个邮件的时候，能够确信，这个信的内容是原始发件人的真实意思表示，而不是被篡改过的。秘密安全就是指，当你收到一个信的时候，你能够确信，除了你没有别人能够偷看到内容。对此，一般采用公钥系统来实现两者的安全。所谓公钥系统是这样一种系统，用公钥加密必须用私钥解密，用私钥加密必须用公钥解密，私钥很容易计算出公钥，公钥非常难计算出私钥。当你要签名安全的时候，将邮件内容用自己的私钥加密再发送一次(实际是将内容hash了再加密的)，接收者解密后对比。由于篡改者只有公钥，因此虽然可以拦截和修改内容，但是无法伪造出一对匹配的内容，用公钥解密后刚好一致。而秘密安全则是用对方的公钥加密。对于更高层级的要求，你的公钥不仅要求公布，而且必须在国家认可的部门公布，这样就由国家认定了你的公钥和你的身份的一致性。当你对一个内容签署的时候，只要能用公钥验证签名，就可以认定内容是你的真实意思表述，并被法律所承认。&lt;/p&gt;&#xA;&lt;p&gt;当时的PGP当然还没有这么复杂，但是对于当时缺乏任何安全性特征(当时连TLS都没有)的电子邮件来说，是非常必要的补充。可是我们上文说了，美国禁止出口这些产品。于是，PZ免费的将软件的最初版本散发给同事和其他人使用，而这些人又可以免费的分发出去——这和自由模式非常的吻合，除了我找不到具体信息标明当时PZ是否从授权上同意他们做这个事情。法律上说，PZ并没有“出口”密码产品，但是实际上，是他实现并且向全世界推广了高强度的电子邮件安全系统。从某种意义上说，PZ可以说是叛国者。非法散布军用管制品，危害美国的国家安全(这还不像中国那种含糊不清的指控，这里的军用管制品定义是明确的，并且是由国会制定的)。于是，PZ受到了三年的官司和五年的调查，直到96年的时候，克林顿签署了新的法案，放松了密码产品的出口限制。其实也没松多少，从40位到56位——大概就是从5个字符到7个字符的区别。反之，我们改变观点，从世界的角度说，由于他的勇气和决心，我们每个人从中受益匪浅。&lt;/p&gt;&#xA;&lt;p&gt;EDIT 2016-09-08: 按照我听到的更新消息，PZ当时实际上是出版了一本书，这个书里面就是完整的源码。他虽然没有“出口”这些源码，但是实际上任何人都可以在书店里买一本，然后带去海外，照着源码keyin一遍。美国政府虽然希望禁止这本书的出版，但是禁止个人出版图书违反宪法第一修正案——言论自由。当时政府还不能因为国家安全因素就随意禁止公民出版书籍（这都是911之后的事了），所以只能用官司和调查来整PZ。&lt;/p&gt;&#xA;&lt;p&gt;必须得说，其实这一改变很大程度上并不是PZ个人努力或者公民运动的结果，其中有巨大的商业力量。IBM，微软和Lotus之类的跨国软件巨头在出口产品的时候，由于受到出口限制，因此在海外产品上的安全性一直很成问题。很多时候他们因为这个问题受到了巨大的挑战。在这一问题上，他们有足够的理由去游说白宫，改变出口限制的要求。关于这个案件的其他资料，可以参考这里(&lt;a href=&#34;http://cyberlaw.stanford.edu/%7Eprz/ZH/faq/index.html&#34;&gt;http://cyberlaw.stanford.edu/~prz/ZH/faq/index.html&lt;/a&gt;和这里(&lt;a href=&#34;http://www.techcn.com.cn/index.php?doc-view-130949&#34;&gt;http://www.techcn.com.cn/index.php?doc-view-130949&lt;/a&gt;)。&lt;/p&gt;&#xA;&lt;p&gt;在今日，PGP仍旧是一个非常强大的加密系统，并且是开源的——理所当然，如果不开源，我们会担心其中是否有漏洞和后门继续危害我们的安全。并且，从密码学内在的逻辑来说，不公开的系统是不安全的。不过他仍旧受限于美国国家安全出口管制条例，原因是因为由于今日强大的计算能力，因此密钥通常的长度是1024，2048，4096位长的——远远超过美国国家限制数十倍。因此这一软件的强密钥版本只有英文版，因为不用考虑出口。对于海外人士来说，我们更推荐OpenPGP，同样是开源的，而且基于开源模式开发的GNU自由软件。能够充分保证你的信息安全。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
