【密码科普】第7期 - 凯撒密码与密码机
- 作者|姜钰
- 来源翼安研习社
- 发布时间|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《服务器密码机技术规范》中规定了服务器密码机必须至少支持三层密钥体系结构,分别是管理密钥、用户密钥/设备密钥/密钥加密密钥等与会话密钥。如下图:
密钥体系结构功能介绍:
管理密钥用于保护服务器密码机中密钥和敏感信息安全的对称密钥,它一般与设备的直接应用无关,而与设备制造商的安全性设计相关。由设备初始化时使用的管理工具产生或安装,存储在服务器密码机内部的安全区域。
用户密钥是用户的身份密钥,包括签名密钥对和加密密钥对。签名密钥由服务器密码机生成或安装,加密密钥由密钥管理系统下发到设备中。
设备密钥是服务器密码机的身份密钥,包括签名密钥对和加密密钥对,用于设备管理,代表服务器密码机的身份。签名密钥在设备初始化时使用管理工具生成或安装,加密密钥由密钥管理系统下发到设备中。
密钥加密密钥是定期更换的对称密钥,用于在预分配密钥的情况下,对会话密钥的保护。由密码设备管理工具生成或安装。
会话密钥是对称密钥,一般直接用于数据的加解密。
服务器密码机的接口采用数字信封的形式、密钥加密密钥加密传输或者密钥协商的方式进行会话密钥的导入和导出。
特别提醒:此条信息来自于互联网,目的在于传递更多信息,并不代表本主体赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本主体有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
【密码科普】第7期 - 凯撒密码与密码机相关推荐
- 凯撒密码c语言小写字母,凯撒密码c(c语言编程凯撒密码)
凯撒密码c(c语言编程凯撒密码) 2020-05-15 13:09:51 共10个回答 #include#includeintmain(){charsave[10][30];inta,b,i,j;sc ...
- php实现凯撒密码加密算法,Python实现的凯撒密码算法示例
本文实例讲述了Python实现的凯撒密码算法.分享给大家供大家参考,具体如下: 一 介绍 凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方 ...
- python123 凯撒密码,Python:Caesar代码,python,凯撒,密码
题目来自:python123.io 题目描述 恺撒密码是古罗马恺撒大帝用来对军事情报进行加解密的算法,它采用了替换方法对信息中的每一个英文字符循环替换为字母表序列中该字符后面的第三个字符,即,字母表的 ...
- 凯撒密码c语言公式原理,凯撒密码 C语言实现.pdf
凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不 被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全.他的原理很简单, 说到底就是字母于字母之间的替换.下面 ...
- 2021-09-06 网安实验-编码解码-凯撒密码,QWERTY键盘编码
一:介绍 UltraCompare UltraCompare是一款文件/文档对比工具,它具有对比文本文档,文件夹,文本资料,以及压缩文件和jar文件的功能.UltraCompare可以实现文本对比, ...
- 【密码学-凯撒密码】
现代密码学-单表代换密码 凯撒密码原理 移位变换 仿射变换 代码实现-凯撒密码 代码实现-放射变换 凯撒密码原理 凯撒密码的加密代换和解密代换分别为 c=Ek(m)=m+3(mod26)c=E_{k} ...
- playfair密码和凯撒密码加密算法的Java实现
文章目录 一.实现广义的凯撒密码加密算法 二.实现广义的playfair密码的加密算法 总结 加密原理: 一.实现广义的凯撒密码加密算法 //实现广义的凯撒密码//凯撒密码的加密String plai ...
- python脚本-caeser凯撒密码-rot13
caeser凯撒密码&rot13 import base64# caeser凯撒密码1-27 content = "qiPGS{3apElcg1ba_1f_r4fl}" r ...
- 凯撒密码加密算法python_CTF中会用到的密码学基础(节选)
Hello,大家好,好耐冇见,我系初音 今天我们来学习一下关于CTF中会用到的部分密码学基础(很简单的那部分) 01第一节.凯撒密码 在密码学中,凯撒密码(Caesar cipher),或称凯撒加密. ...
- php实现凯撒密码加密算法,Golang 实现凯撒密码
一.凯撒密码加密代码思路 基本思路: 设置明文 和 位移步长(秘钥) 将明文转成小写,准备 明文字节切片 与 密文切片 循环将每个明文字符 按照 位移步长 做位移,存入密文切片 返回密文 导入包 im ...
最新文章
- Android之动态改变控件大小
- HPU暑期第五次积分赛 - G-迷宫(BFS+最短路径)
- linux 拆分文件 多个,linux把一个文件拆分
- 在双向链表存储结构中,删除p所指的结点时,须修改指针()【选择题】
- springsession 实现session 共享
- 【Vue】—解构插槽 Prop以及具名插槽的缩写
- java-io-FileReader和FileWriter类
- java 的初始化顺序
- nginx代理tomcat
- MAT jvm 分析工具,mac,windows版本 下载地址
- meshlab简单实践
- Gensim库之Doc2Vec模型详解
- maven parent 覆盖_Maven 最佳实践之 · 一个好的 parent 依赖基础
- 动态改变Input和Textarea值Vue数据没有绑定的解决办法
- 软阈值迭代算法(ISTA)和快速软阈值迭代算法(FISTA)
- 英文歌曲:Action Songs for kids
- p标签中的文字垂直居中
- 基于模板的云服务视频自动生成解决方案
- HTTP_REFERER的用法及伪造及去掉REFERER方法
- 计算机科学与技术专业导论3500,计算机科学与技术专业导论.docx