主题:【原创】再说说密码:) -- 1001n
昨天上来没有细看,没明白子矜兄关于密码的帖子怎么给删了。今天上来稍微查找了一下,结果是更不明白了,呵呵,到底怎么回事啊?还期盼着续作呢:)
关于密码和明码的区别。。大概可以这么说,“长江长江,我是黄河我是黄河”属于密码(密语/暗语),“二班长二班长,我是二班副,我是二班副”属于明码吧:)
总的来说,信息要在不同的人之间传递,必然有个编码和解码的过程。大而化之的讲,我觉得说话、写字这样司空见惯的活动,实际上也是编过码的,只是,我们一般不觉察罢了――因为,我们很少会觉得,语言和文字本身也是一种编码。比如汉语和英语,换个角度看就是两种编码,而且之间的编码差异要大于汉语普通话和汉语广东话之间的差异。
再推广一点,比如,小李正在大讲BOSS坏话,而BOSS悄悄站在他背后,这时候,我冲小李挤挤眼儿――实际上也是在编码,只不过,这个码编的比较隐晦,有了点儿密码的意思。小李看见了,自然会以他的方式进行解码,比如正确解码之后立刻住口,当然也有可能不解地问(这个不解真是太恰当了):“你老冲我挤什么眼儿啊”――编码的信息是否能被正确解码,正是信息传递的关键。举以上的例子,只是为了说明:编码无处不在,而解码也是无处不在。至于你想不想让该知道的人正确解码,就有赖于你的正确编码了。如果只想让该知道的人正确解码,那么同时还必须加以掩饰,以迷惑其他的局外人。
一个常见的例子是,老外占多数的企业里,你想说点什么跟工作不相干的事情,比如批评一下老板其实跟人类没有什么血缘关系的时候,往往会用非主流的母语――自然,这样的企业往往也有针对性的规定,上班时间不得用主流语言以外的其它语言交谈――都精着呢。一个企图加密,一个不许加密,结果是什么呢?信息的共享成功了,非必要的信息就自然消失了。
关于密码和明码,在我们的军事文学或者记叙里,经常有这样的描述:国民党军也好,伪军也好,越军也好,被我军英勇的打击完全打昏了头,于是“不顾一切地在电台里明码呼救”……为什么会这样,确实是个有意思的问题。
大家都知道,军队内部传递的信息,特别是在战场上,是要绝对禁止被对方知晓的。否则,轻则贻误战机,重则全军覆没,甚至亡国。
举个非常著名的例子:二战中期,美军已经破译了日本海军的密码。于是,1943年4月18日,山本五十六海军大将就这样被击落在视察部队的行程中,在布干维尔岛上彻底沉寂了。
顺便说一句,二十五年后的1968年,日本电影《山本五十六》一片中,为了刻划山本“军神”的形象,甚至杜撰出座机被击中的情况下,山本仍然军姿不改,扶刀而坐,直到飞机坠毁的情节。而真实情况呢?事件发生后的两天,也就是1943年4月20日,日本陆军少尉滨砂盈荣率领的搜索小队的搜索结果是:山本的尸体上中了两弹,一弹从后穿入左胸,另一弹则是颧骨入太阳穴出。心脑俱毁,他如何活着,如何硬撑一个标准的姿势?原来是坠机时还有一口气的联合舰队军医长高田六郎海军少将给山本摆了个姿势,之后该军医长也死了……从以上事情可以得出两个结论,第一,主演三船敏郎演的确实精彩,的确演活了一个“军神”;第二就是,日本民族喜欢篡改历史事实为自己的某种目的服务,这是一个由来已久的习惯……
扯的太远了,都扯到太平洋上去了……赶紧把话题拉回来:明明危险如此,为什么还会有战场明码呼叫的事情?
我个人看法是,这就涉及了一个加密解密的代价问题。越是高级的密码,越是不易被简单的破解,即便是在有适当的设备和人员的条件下,依然会浪费相当一段时间。这样,密码的应用本身实际上就已经对加密和解密有了限制。
简单的说,为了达到信息通过敌我共享空间的安全传送,则应该
1、对报文进行包括暗语和移位在内的伪装修饰;
2、之后开发出N个无限长并且无规律的密钥(关于利用公钥和私钥进行加密解密暂且不提);
3、进行反复不断地循环或非循环加密;
4、并且采用尽可能点对点或者窄带的通信方式;
5、在约定的时间内进行联系。
则这个密码从理论上就很难被破解了。
在此前提下,敌方想掌握报文,则:
1、必须能够解除报文的伪装;
2、必须掌握这N个密钥;
3、必须知道对方如何利用密钥进行加密;
4、必须能够监听对方的通信;
5、必须知道对手通信的时间窗口;
最重要的是
6、以上五个条件必须同时具备。
否则,那就永远不可能解密,或者不可能短期解密。
事实上,这几点在现在军事密码及通信技术上都有所涉及。为了不让对手知道自己的机密,将采用以下几个手段:
1、报文伪装:暗语技术是最常见的简单加密手段,比如长江黄河之类,一号首长之类,再比如12345部队、6789信箱之类;
2、密钥:密码本这个东西,本身就是记录密钥的本子;
3、多次加密:前文提到的ENIGMA密码机用的就是多次加密的原理,现在的密码机咱不清楚,但是至少不会被二战那会儿水平还低吧:);
4、防止监听:完全防止对手对频率信道进行监听,技术上几乎是不可能的。那么,让你听不完整总是可以的――捷变频技术就这么出现了。利用这个技术,发送电报的时候不再是在一个频率下老老实实地发完,而是迅速地在不同的频率之间切换。在以前看的文章里面有个模糊的印象,似乎美军早已达到每秒百万次以上的频率变换速度,我国方面,实在记不清楚了,也许没有这么厉害吧。
5、缩短时间窗:现在常用的脉冲压缩方式已经可以在千分之一秒,甚至更短的时间间隔内把报文发送完毕,对手想截获的难度也就大大增加了――谁知道监听到的那个异常的信号是报文还是一次莫名其妙的干扰呢。。
而相应的,军事上也在对这些手段进行对抗:
1、破解报文伪装:包括收集对手的军事资料,综合研究判断对手所用密语具体的指代,例如前文提过的AF暗指中途岛;
2、获取密钥/密码本:山本大将的死因是密码被破,破的原因正是密码本。在山本被击落前的1月29日,新西兰海军“基威”轻型巡洋舰撞沉了日本潜艇,搂草打兔子地搜到了日本海军的密码本――结果是,4月1日起,日海军开始启用新密码,14日发出山本大将的行程,几个小时以后已经被美海军破译,4天以后山本命丧黄泉。顺便说一句,如果不是“照本宣科”的话,这样的密码确实是难以如此迅速破解的。史料是这么写的,但我个人觉得,似乎不这么简单。按照美军当时对日军多种密码破解的程度来看,这个捡密码本的说法也可能是一种烟雾,实际上在掩盖当年美军破译密码的能力。密码是一个国家的重中之重,至于破解能力,则更是绝密中的绝密。战后很多事情都解密了,惟独这个密码战,各方都是欲说还休,谁让这个搞密码的人、研究密码的思路都是一脉相承的呢……;
3、针对多次加密,唯一的办法就是模拟出对手加密的机制。研究软件的人有种说法叫逆向编译,大概就是这个意思吧?:)这个难度是空前的大,但也不是一点办法没有。举例而言,据说,仅仅是据说,ENIGMA被破,并不是传说中的通过纵横填字谜高手突发的灵感而获得的舰艇坐标,而是因为德军的懒惰和刻板。有的部队,没有按规定每天一次改变密码,这就为盟军的监听提供了同一密码加密不同文本的难得样本;同时,德军报文的格式太死板,我印象中资料里提到,开头好象都是三个字母,之后依次就是天气、时间、地点,然后发报单位,题头的称谓也是严格规定好的,并且必须按规定换行。盟军积累了足够的样本以后,已经能够猜解某些日子某些电文的某些内容,反过来用此推算出密钥,最后在掌握了足够的密钥之后,甚至成功地复制出了ENIGMA机……真是奇迹,但是这德国人自己也为这奇迹的创造尽了他们的能力:)。。;
4、针对捷变频:要么截获它的变换规律,进行针对性接收,而这个难度恐怕不比破译密码本身简单多少,何况变换规律本身也在变化,也未必有明显的规律;再就是采用宽频带监听,不放弃任何可能的频率,同时截获所有信号,之后试图以时间顺序先后连接并解读――这个难度也大的难以想象,没有计算机的帮助,根本是不可能的;有了计算机的帮助,也跟不可能差不多,特别是对手变换的频率范围跨度极大、变换频率极高的时候;
5、针对脉冲压缩:可能的办法只有“时刻竖着灵敏的耳朵”,试图从每天从广大频率上截获的无数信号中大海捞针,别无它法。
可以看出,特别是3、4、5三项,几乎要了破译密码人员的命。相对来讲,试图从防卫森严的敌方手里截获密码本倒成了最“简单”的途径。从哪里截?军舰上有,但和平时期,不击沉它是拿不到的,击沉了人家第一个要毁的也是密码本;使馆是个不错的途径,以前KGB的“燕子”,几乎就是专门为这个目的训练的,当然,能弄些秘密文件出来,也是个不错的收获。顺便再提一句,如果我没记错的话以前报纸登过,我南联盟使馆被炸的时候,保密员第一个反应就是抢出密码机,之后把它销毁。至于窃取密码本,其它的途径肯定还有,只是没那么简单了吧……
但是密码既然是人发明的,人必然也可以破译它。只是,这里头就有个代价的问题了。硬件设备的投入,信息技术的发展,数学的突破,时间的流逝,智力的消耗――这都是破译密码的所必须付出的代价。密码越高级,越复杂,则破解起来的时间越久。甚至,就连正常的解读都要消耗相当久的时间――去年的德国海军电影《DAS BOOT》就有这样的场景:U艇上的译电员接到电报,一个字母一个字母地按下去,对应的另一副键盘上一个字母一个字母地亮起来,两不相关;之后把亮起来的字母抄下来,才是真正的电文。现在的技术当然不会这么落后,但是我个人猜测,出于越快越不保险的偏执性想法,现代化的译码的最后一步工作,没准儿还是人工操作的。即便不是,恐怕也达到不了所接即时所见的程度吧――这个只有自己瞎猜了,呵呵。
而在过去的电影里,人工的译码时间成本太大,并且,这还是在你的密码机没有被打坏的前提下。那些明码呼救的军官,恐怕都是已经等不及译码所需要的时间了――“张军长,看在党国的份子上,拉兄弟一把吧……”――挖空心思将密码设计得繁复无比,让对手几乎没有时间去一一破解的聪明人啊,面对这样的场景,只怕也是无可奈何吧。。。
本帖一共被 1 帖 引用 (帖内工具实现)
一次,一位同事帮我修电脑,然后要我提供密码。下面是我和他的对话:
我问:“这个密码是不是很重要?”
他说:“是。”
“那是不是就只能我一个人知道?”
“如果资料很重要的话,最好你一个人知道。”
“那是不是密码越复杂越好?”
“一般说是这样的。”
“那万一忘了怎么办?”
“忘了我们也没有办法,你就记在本子上好了。”
“但是记在本子上别人会看到啊。”
同事无奈地说:“那你就记在脑子里面好了。”
过了一会儿,我喃喃说:
“那我死了怎么办???”
无非两种可能:
不想的话,显然。。就没问题了。。
想让别人知道的话,也无非两种可能:
想让一部分人知道,那就把密码事先分别告诉他们;
想让所有人都知道,,
――这个我看就别加密码了,呵呵
难为兄台为俺费心了
难得看懂了,就照这个路子开始普及教育吧
我看懂了。
好看!
解码---一千零一夜,老兄真是讲故事高手。
恭送鲜花,请笑纳!
http://www.cchere.com/article/340077
呵呵,就不在你这灌水了。1001n兄继续发表高论吧。
这是从理论到实践都证明了的既能保证质量又能保证效率的原则。
一个加密系统包括明文、加密算法、密钥、密文几部分。从加密强度的角度说,最好的系统是即便得到了加密算法、特定的明文、对应特定的明文的密文,仍然无法破解密钥的系统。美国的DES就是基于这样的理念开发的。至今为止,对DES的有效破解均是基于穷举法。1988年,蠕虫攻击UNIX网络就是得到了加密过后的密码后,使用一个特别的字典进行穷举攻击而得逞的。
反过来说,如果一个加密系统的密钥可以被轻而易举地攻破,那么加密算法即便保密得再好也无济于事。因为用于加密算法的数学理论就那么几种,开发一个良好的加密算法殊非易事,现如今在役的加密算法哪一个不是积数十年之功?在加密理论上提出新的算法绝对是一件大事,比如RSA的提出,因为那又是另一种全新的理念了。
变频(或者叫跳频frequency-hopping)思想早就有了,不过难点在协调收发端同时跳,还要跳得一样。这个问题在上世纪40年代被好莱坞女演员hedy lamarr首次解决。
跳频在现代通讯中应用广泛,比如GSM手机,兰牙,还有一种被淘汰的wifi设计等等都用调频技术。不过这些一般都使用固定跳序,在保密通讯中没多大用处。而事先安排跳序(象密钥一样)在实际应用中问题很大,很难推广。而且在现代通讯技术下只要有广谱接收机,加上大计算能力,跳频通讯没有多少秘密可保。事实上,军事通讯虽然采用跳频的地方很多,但更多的是把它用作抗干扰调制方法,对于保密则使用数码加密的方式而不是这类保护信道的方法。
脉冲通讯有一样的问题。现代计算能力可以不费力全时间监视可疑频率。另外脉冲通讯还有一个数据量的问题,只能用于微量数据通讯。
很多加密算法在纸上很好看,但实际中没有多大用处。比如“一次秘本(one time pad)”,使用与原文同样长度的密钥,在理论上可以实现不可破译,这一点早被香农从数学上证明过。可是实际应用中密钥管理就变得太复杂了,不能广泛使用。已知的例子中只有前苏联驻美大使馆采用过一段时间。象日本二战时的密码规定10天换一次密钥,但实际上因为很难在短时间内把新密钥传达到各单位,所以有各种延迟。有的系统还使用当前密钥来加密新密钥传给下级单位,但这样如果一次密钥被破,以后所有的密钥也一样落入敌手。
设计出一个理论和实际都安全的保密系统是一件很难的事。甚至世界上都没有有效的评估系统,一般还得采用悬赏破译的方法看一个系统能撑多久来看它有多安全。