ORACLE DATABASE > 知识库

欢迎访问 ORACLE DATABASE Doppler 知识库
本知识库记录了解密档案中一些需要引用的专业性资料的简述,具体信息可在万维网上查询。
维护者须知:仅在第一次出现的地方引用知识库词条。
KNOWLEDGE_BASE > Base64
一种基于64个打印字符来表示二进制数据的数据表示法。基础算法如下:
  • 将要发送的数据按3个字符一组分隔,并将每一组转化为8位二进制数据。
  • 取每一组数据(共24位),按6位一组分隔,将每个6位转化为十进制数。
如果该组数据不够6位(常见于最后一组),则以0补齐后续二进制位数后转化。
  • 根据索引表,从转化后的十进制数推出一个Base64编码字符。
一组3个字符应转化为4个Base64编码字符。如果该24位数据不足以达到该要求,剩下的部分以等号(=)填充。

Base64具有多种索引法,其中较为常用的一种为RFC 4648(原RPC 3548)编码,这也是通常语境下的“Base64”。

KNOWLEDGE_BASE > One-Time Pad
一次性密码本是古典密码学中的一种加密算法:使用随机的、仅使用一次的密钥搭配明文,加密出密文的加密方法。

该算法的安全性已由著名信息论创始人、密码学家克劳德·艾尔伍德·香农证明,但在实际操作中,一次性密码本必须遵守下列规定才能保持隐秘性:

  • 密钥必须是随机产生的;
  • 密钥的长度至少与明文等长;
  • 密钥必须只能使用一次,且必须对外保密。
KNOWLEDGE_BASE > Exclusive OR & XOR Cipher
异或,或称“互斥或”,是一种逻辑运算,其运算方式在数学中记为 p ⊕ q。

异或的算法为:若p与q中有且仅有一个为真,则 p ⊕ q 为真;如果p与q真假相同,则 p ⊕ q 为假。

在计算机中,异或(XOR)是二进制运算基础运算之一,常在编程语言中用 ^ 进行计算,此时即有 0^0=1^1=0,0^1=1^0=1。

通过异或算法完成的加密,即为异或加密,而这种加密通常都会遵守“一次性密码本”的算法:只要密钥不被泄露即可确保安全。

但一旦密钥泄露,密文和明文都将失守,这是因为异或具有特殊性质:对于 p ⊕ q = k,任意交换p、q、k在式中的位置,此运算始终成立。

也即当密文、密钥和明文中任意两个已知时,剩下一个可以通过这两个已知的数据做异或运算求出。

KNOWLEDGE_BASE > Morse Code
摩尔斯电码,或称“摩斯密码”,是由萨缪尔·摩尔斯及其助手艾尔菲德·维尔在1836年发明的一种电报传输信号码。

其核心为通过点( · )与划( - )两种基础信号为各字符编码以发送信息。

发报时,每个点信号占用1个单位长度,每个划信号占用3个单位长度;每个信号之间保留1个单位长度的无信号空隙,字符之间改为3个单位长度,单词之间改为7个单位长度。

当然,随着通信的现代化,目前摩尔斯电码已经逐渐退出大众视野,不过在各种专业场合,摩尔斯电码仍然具有重要作用(例如著名的SOS求救信号,在摩尔斯电码中即为···---···

一些文艺作品中也将摩尔斯电码作为密码使用。

KNOWLEDGE_BASE > Baudot Code & International Telegraph Alphabet No. 2
博多码是由法国人埃米尔‧博多在其1874年发明的“印字电报机”(后称“博多式电报机”)中所使用的一种报文编码。

在1876年,根据数学家高斯和物理学家韦伯的建议,博多将博多码从6位编码改为5位编码,这即为“国际电报字母第1号”。

1932年,随着电报技术的发展,国际电信联盟电信标准化部门(CCITT,现国际电信联盟电信标准化部门的前身)发布了基于博多码和后续变种编码改良后的ITA2码,即国际电报字母表第2号。这个代码标准确定了代码的码位顺序和打码组合,相对于原版能够更好的统一阅读。

以标准的ITA2码为例:

  • 首先确定发报码位顺序为大端序(3+2)还是小端序(2+3)
例如字母E在小端序中的代码为10·000,大端序则反转为000·01,反之同理;
  • 根据对应端序的码表,将字符转为编码;
  • 收报机将根据编码,将其在纸带上打孔
其中为1的编码将被打孔,0的编码不会打孔;为了表现端序,还将会在码位的对应位置打上一个比一般1码孔较小的端序孔
  • 接收完毕后取下纸带,根据纸带上留下的孔、端序和码表翻译为字符。

随着数字技术发展,1963年ASCII码出现之后,ITA2退出了历史舞台,仅在部分专业领域(例如业余无线电)中被继续应用。

KNOWLEDGE_BASE > Caesar Cipher
凯撒密码是一种经典的古典密码加密方式,它的名字源于罗马史学家苏埃托尼乌斯的《罗马十二帝王传》中对盖乌斯·尤利乌斯·凯撒大帝的记录。在记录中,凯撒曾使用过这种加密方式来传递军事信息。

凯撒密码的加密方式非常简单:将密文中的每一个字母向前/向后推移某一固定位数,再将新位数上的字母作为密文。如果移动的位数超出了字母表,则回到字母表开头移动剩余的位数。

举例:明文为“A”,设定加密方式为后移3位,则“D”为“A”的密文,后续字母以此类推。在这个例子中,“Z”的密文即为“C”。

而“后移3位”也是记录中凯撒所使用的方法,这也是最经典的凯撒密码密钥。