- 作者|姜钰
- 来源翼安研习社
- 发布时间|2022-01-21
1. 凯撒密码
罗马史上第一位独裁者、罗马帝国之父、攻无不克的名将、日历发明家、拉丁语文学家、埃及艳后克利奥帕特拉背后的男人…除了这些声名赫赫的传奇事迹,凯撒大帝还有一个鲜为人知的技能点:密码学。
其实,大帝并不是历史上第一个想出加密算法的人。根据我朝姜子牙在3000年前就发明了古装版密码本《阴书》。公元前四世纪,古希腊人发明了卷轴式密码本《天书》;公元前五世纪的斯巴达汉子,也会把皮带卷在一根木棒上,只有特定直径的“密码棒”,才能把皮带上的字还原成明文。但今天我们仍旧把密码学归功于凯撒,是因为凯撒密码,很可能是首个广泛运用到军事通信领域的加密技术。
凯撒密码的原理,说白了就是一个词:替换!
如果心里想的是字母A,纸上就写B;要写B,就用C代替。当然,我也可以用D替换A、用E替换B,以此类推(偏移三个字母)。
只要收发双方都知道偏移量是几,就能轻松加密和解密;而外人看到的无非是一堆乱码。
今天看来,这种算法极易破解,毫无技术含量可言。但在当年的罗马战场,这就是令吃瓜群众望而生畏的黑科技。
在凯撒制霸罗马的全盛时期,就连教主耶稣都不得不服:”上帝的归上帝,凯撒的归凯撒。”所谓凯撒的归凯撒,是因为耶稣所在的中东地区(今以色列耶路撒冷)当时已被罗马征服,人们必须用印着凯撒头像的货币(凯撒的)向罗马帝国缴税(归凯撒)。
然而讽刺的是,这样一位狂拽酷炫还精通密码碟战的军事天才,却死于一场密谋政变,深深被戳23刀。为了纪念大帝,人们把凯撒制成了扑克牌上的标本:方块K。
又过了1000多年,凯撒大帝和他的罗马帝国早已灰飞烟灭,而凯撒密码和扑克却被后人发扬光大。
2. 密码信息安全常识与密码问题的应对策略
密码信息安全常识有以下4点:
2.1 不要使用保密的密码算法
a. 密码算法的秘密早晚会公诸于世
- 从历史上看,密码算法的秘密最终无一例外地都会被暴露出来。例如: RSA 公司开发的 RC4 密码算法曾经也是保密的,但最终还是有一位匿名人士开发并公开了与其等效的程序。一旦密码算法的详细信息被暴露,依靠对密码算法本身进行保密来确保机密性的密码系统也就土崩瓦解了。反之,那些公开的算法从一开始就没有设想过要保密,因此算法的暴露丝毫不会削弱它们的强度。
b. 开发高强度的密码算法是非常困难的
- 要比较密码算法的强弱是极其困难的,因为密码算法的强度并不像数学那样可以进行严密的证明,密码算法的强度只能通过事实来证明,如果专业密码破译者经过数年的尝试仍然没有破解某个密码算法,则说明这种算法的强度较高。稍微聪明一点的程序员很容易就能够编写出 “自己的密码系统 "。这样的密码在外行看来貌似牢不可破,但在专业密码破译者的眼里,要破解这样的密码几乎是手到擒来。现在世界上公开的被认为强度较高的密码算法,几乎都是经过密码破译者长期尝试破解未果而存活下来的。因此,如果认为 “公司自己开发的密码系统比那些公开的密码系统更强”,那只能说是过于高估自己公司的能力了。试图通过对密码算法本身进行保密来确保安全性的行为,一般称为隐蔽式安全性(securitybyobscurity),这种行为是危险且愚蠢的。反过来说,将密码算法的详细信息以及程序源代码全部交给专业密码破译者,并且为其提供大量的明文和密文样本,如果在这样的情况下破译一段新的密文依然需要花上相当长的时间,就说明这是高强度的密码。
2.2 使用低强度的密码比不进行任何加密更危险
- 与其使用低强度的密码,还不如从一开始就不使用任何密码这主要是由于用户容易通过 “密码” 这个词获得一种 “错误的安全感”。对于用户来说,安全感与密码的强度无关,而只是由 “信息已经被加密了” 这一事实产生的,而这通常会导致用户在处理一些机密信息的时候麻痹大意。
2.3 任何密码总有一天会被破译
- 无论使用任何密码算法所生成的密文,只要将所有可能的密钥全部尝试一遍,就总有一天可以破译出来。因此,破译密文所需要花费的时间,与要保密的明文的价值之间的权衡就显得非常重要。
2.4 密码只是信息安全的一部分
- 系统的安全强度取决于其中最脆弱的环节的强度。有时最脆弱的环节并不是密码,而是人类自己。
密码问题的应对策略:
3. 密码机
– 运用密码对信息实施加(解)密处理和认证的专用设备
密码机是一种在密钥的作用下,实现明-密变换或者密-明变换的装置。
密码机是以整机的形式出现,实现数据加解密、签名/验证、密钥管理、随机数生成等功能。在通
信加密类产品中,密码机根据工作类型不同分为应用密码机、网络密码机和链路密码机。
目前国内的应用密码机主要分为通用型服务器密码机、应用于数字证书认证系统的签名验签服务
器、应用于金融行业的金融数据密码机以及适用于云计算环境的云服务器密码机。
密码机本身仅提供最为基础的密码计算和密钥管理功能,不面向具体的业务应用用户,也有一些密
码机配备了比较完善的用户管理机制,可以直接面向用户调用,如服务器密码机。签名验签服务器和金融数据密码机在硬件组成角度来看,与服务器密码机并无区别,主要是针对特定应用场景,在通用型的服务器密码机基础上,进一步封装了特定接口,可供各类应用系统调用,为其提供数据加解密、签名/验证等密码服务。
在密码行业标准中,与密码机产品相关的技术规范和检测规范如下:
在GM/T 0030-2014《服务器密码机技术规范》中规定了服务器密码机必须至少支持三层密钥体系结构,分别是管理密钥、用户密钥/设备密钥/密钥加密密钥等与会话密钥。如下图:
密钥体系结构功能介绍:
-
管理密钥用于保护服务器密码机中密钥和敏感信息安全的对称密钥,它一般与设备的直接应用无关,而与设备制造商的安全性设计相关。由设备初始化时使用的管理工具产生或安装,存储在服务器密码机内部的安全区域。
-
用户密钥是用户的身份密钥,包括签名密钥对和加密密钥对。签名密钥由服务器密码机生成或安装,加密密钥由密钥管理系统下发到设备中。
-
设备密钥是服务器密码机的身份密钥,包括签名密钥对和加密密钥对,用于设备管理,代表服务器密码机的身份。签名密钥在设备初始化时使用管理工具生成或安装,加密密钥由密钥管理系统下发到设备中。
-
密钥加密密钥是定期更换的对称密钥,用于在预分配密钥的情况下,对会话密钥的保护。由密码设备管理工具生成或安装。
-
会话密钥是对称密钥,一般直接用于数据的加解密。
服务器密码机的接口采用数字信封的形式、密钥加密密钥加密传输或者密钥协商的方式进行会话密钥的导入和导出。