西西河

主题:【原创】也说一下关于密码的问题 -- yhz

共:💬34 🌺46
全看分页树展 · 主题 跟帖
家园 关于这个问题我觉得有必要讨论一下

原则上,我也赞同这点:

语言文字已经被污染了,大家都有义务纠正过来,你既然说这个话题,就应该规范用词,这是许多有识之士曾经在西西河呼吁过的。

但是,既然大家对这个问题这么关心,那么我觉得还是要详细说一下我对这个问题的理解。

先抛开“密码”这个有争议的词不论,先说一下其它的一些和密码/密码学相关的术语:

口令:Password。这个含义很清晰,无需多解释。

密码学:Cryptography。指的是对密码算法的研究和使用。如果要细分,偏向于密码技术的使用,密码协议和安全系统的设计等。而对密码算法本身的研究和设计,还有另一个词Cryptology指代。但是如果不需要精确细分的话,一般二者通用。

密码算法:Cipher。一般是加密算法和解密算法的通称。

密钥/密匙/钥匙,Key,密码学上密码算法中的某些关键参量。

而1001n说的,如果说是他写的《密码传奇》,那么实际上他说的是密码学和密码学发展史(说实话我看的不是很多,断断续续看了大约10篇左右吧)。而且细分而言,可能也是考虑到读者的水平,在近现代密码学中,除了对enigma分析的一小段外,其余的大都是密码技术和密码协议上的叙述和描写。例如说描述分析破解enigma中,大量描述到对德军密电前几个字符是密钥及盟军以此为突破口等,这就是密码协议和密码分析的范畴。而描述到德军使用enigma传输天气预报而导致破解的时候,这些就属于德军的安全系统的设计失误等等。

同理,前面另一位朋友所说的《暗算》,也是密码学上的内容,而且监听(第一部)和密写术(第三部)等等,已经不是传统的密码学范畴了。

当然,有一点我想我们可以有共识的,就是“密码”一词,如果从广义而论,基本上包括了我上面所说的各种范畴。而现在我们所争议的就是,狭义上的“密码”所指,究竟是指代“密码学”?“密码算法”?还是“口令”?

在这点上,我承认汉语确实有含糊不清的一面。

但是我个人认为“密码”和“密码学”不是同一个指代对象。原因有以下几个:

一:在我能找到的所有翻译软件中,对Password一词,翻译的结果中,要么“口令”和“密码”并存,要么只出现“密码”,而不出现“口令”。反过来只出现“口令”而不出现“密码”的,目前我没有看到。而对Cryptography一词的翻译,均称为“密码学”。

二:wikipedia中,在“密码”词条中,明确写到:

密码在中文里是“口令”(password)的通称。登录网站、电子邮箱和银行取款时输入的“密码”其实严格来讲应该仅被称作“口令”,因为它不是本来意义上的“加密代码”,但是也可以称为秘密的号码。

而在“密码学”词条和“密码”的词条入口完全不同。这至少意味着“密码学”和“密码”是两个完全不同的词语(不像“物理学”和“物理”一样二者等价)。

但是我个人对把“密码”解释为“加密的代码”,有异议。因为很简单:“代码”一词是计算机中的专有名词,和“源代码”一词基本上等价。而“密码”的使用范围广得多,总不能说只有在计算机或者IT上的,才能叫做“密码”吧?

而我认为“密码”指代“口令”的原因是:现有大量的技术文档、软件界面、用户手册等等,都以“密码”代称“口令”,包括在我工作中接触到的大量涉及系统安全方向的专业技术文档,都以此代称。

另外,这种代称也在各方面被使用着:从银行ATM上的提示、银行柜台输入密码的语音提示、电子邮箱的登录(例如说我用的Gmail)还有网站(例如说西西河)都是如此--虽然大家都说严格意义上应当被称为“口令”。如果大家都有共识认为“密码”不能指代“口令”,那么首先应该让铁老大把西西河的登录界面给改了再说。

所以,起码在我的文章描述的范畴中,可以认为,这种取代是被广泛接受的。而且,更进一步来说,我们应当尊重我们所描述的原文。如果明天有人来问我:“你的文章很好,我按照你的方式,去银行柜台设置了新的口令,但是我去商店刷卡或者去ATM取款的时候,人家还是要问我密码,没问我口令,怎么办?”不要以为“Press any key to continue”这种笑话仅仅是笑话。

但是,如果说“密码”一词指代“密码算法”,也是有先例可寻的:例如说著名的凯撒密码,实际上指的是一种密码算法,不过这一般指的是古代的密码算法。到了现代的密码算法,一般重新称为算法了。例如说“DES算法”、“RSA算法”、“RC4/5算法”、“IDEA算法”等等。

至于有人用“对称密码”这种说法,反倒是不正确的。因为英文的描述为:symmetric-key algorithm。algorithm一词明显应当被翻译为“算法”。

或者从另一个角度,也可以认为“密码”是“密码算法”的简称,也行。

实际上,这种多重替代,或者用俗称来替代,是非常常见的。在不引起歧义的情况下,对大多数人都接受的替代称呼,不应该过多的干涉。

例如说,Linux这个词,指的是什么?一个操作系统?一类操作系统?一系列发行版的集合?错!

从严格定义来说,Linux仅仅指的是一个十来兆二十兆字节的程序,虽然通常我们称之为:内核,但是实际上,这个“内核”,才是真真正正严格定义上的Linux。但是,在绝大多数情况下,包括各种的软硬件驱动、shell都被通称为Linux。范围大一点的,连grub、Xwindow和各种的窗口管理器都会包括在内。

另外,Linux的严格称呼,应当为GNU/Linux。先不论法律上怎么说,但是单独称为Linux,在绝大多数情况下,也是约定俗成的。

至于Linux这个单词的发音,说实话,我听到的版本至少有三四个,不过没关系,大家知道说的是什么就可以了。

所以,我个人的看法如下:

一,“密码”这个词本身没有严格的学术定义,或者说我没有看到在学术界对此有共识或者有通用的定义(如果有的话,请各位提出相关的证据);

二,狭义上的“密码”一词,不应该指代为“密码学”;

三,“密码”同时指代“口令”和“密码算法”是不会引起歧义的,因为这二者同时在同一场合出现的可能性很小,而且,在专业技术文档中,“密码算法”一词通常是被明确指出的;

四,作为通用的约定俗成的称呼,“密码”指代“口令”一词,已经在绝大多数场合被使用,而且甚至可以看到“口令”一词本身已经很难看到。所以,从语言的角度来说,已经不是“指代”的关系,而是“替代”的关系了;

五,一词多义的情况,无论在中文还是英文,都非常常见(英文单词的Key,有多少种含义?)。只要没有明确的定义或者约定的共识,而且不引起歧义,直接使用较常见的称呼,并无不可。

最后,说说我对这个问题的感受,就是我似乎在不断的向几位在解释:为什么1+1=2?

因为在IT界,大量的中文技术术语,根本就没有统一的翻译标准。而实际使用中,为了表达准确,常常会直接使用英文原文。所以,抬杠一点说,很多时候,根本就无所谓“污染”一说--因为从来就没干净过。例如说最著名的“堆”、“栈”和“堆栈”的翻译,谁污染谁了?还能被怎么污染吗?

所以对于开头的那句话,我原则上同意。例如说“鲸鱼”不是鱼,要改为“鲸”这种,我同意。如果想把这个原则和模式套在IT界,不可能行得通。老实说,我比你们更盼望有个国家统一的术语翻译标准出来。在这个标准出来之前,我的唯一目的是让我的同事、老板、客户、读者明白。中文不够,搭上英文。


本帖一共被 3 帖 引用 (帖内工具实现)
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河