自创加密算法

之前想的加密算法,先上图:
第一张图为数字置换算法,第二张图为三多算法。应该是第二张图先想出来的,第一张图是后想出来的。 让豆包来给我们描述一下这两种算法:

数字置换算法

数字置换算法是一种简单的加密方式,基本原理是将明文中的字符按照一定规则用数字来替换 。以下是结合图中内容的介绍:

加密规则构建

  • 字符与数字对应:如图中,先建立了英文字母(包括A - Z )与两位数字的对应关系,A对应01、B对应02 ,以此类推,Z对应26 。这是加密的基础映射表。

加密过程

  • 明文拆解与替换:把明文消息拆分成单个字符,然后依据上述对应关系,将每个字符替换为相应数字。例如图中“NIHAO”,“N”对应14、“I”对应09 ,依次替换。

  • 数字运算(可选):图中还出现了一些数字运算,如“1 + 0 = 01”等。这种运算可进一步打乱数字顺序或改变数值,增加加密复杂性。比如对替换后的数字进行简单加减运算,改变其原本对应关系。

  • 重组得到密文:经过替换、运算等步骤后,将处理后的数字组合起来形成密文。图中最终得到“AG - J - 0AIBJ” ,就是经过一系列字符数字置换、数字运算等操作后的密文形式。

数字置换算法原理简单,通过字符和数字的对应替换以及简单数字运算来隐藏明文信息,但安全性相对较低,容易被通过频率分析等方法破解 ,常作为更复杂加密算法的基础组件使用。

三多算法

从图中内容来看,“三多算法”强调“多钥多表多混淆” ,以下是结合图中步骤对其加密和解密过程的描述:

加密过程

明文扰乱:将明文(如图中的“HELLO” )通过多种方式打乱顺序。例如可以采用类似倒序、间隔换位等方式,图中列举了不同的换位形式,目的是改变明文原本的字符排列顺序,使其无规律化。

插入钥匙字:把钥匙字(密钥1 ,如图中的“WORLD” )随机插入到扰乱后的明文中。这样进一步混淆明文结构,使加密后的内容更难被破解。

位移操作:使用钥匙数(密钥2 ,如图中的“18648” )作为位移量,对包含钥匙字的内容进行位移操作。通过多次重复位移,得到最终密文。

解密过程

逆向位移:根据钥匙数(“18648” )进行逆向位移操作,恢复插入钥匙字后的内容。

分离钥匙字:从位移后的内容中分离出钥匙字(“WORLD” ),得到扰乱后的明文。

恢复明文:对扰乱后的明文进行逆向操作,还原出最初的明文顺序,从而得到原始明文。

“三多算法”通过多重混淆手段增加加密强度,但其安全性依赖于密钥的保密性,在现代密码学体系下,这种相对简单的手工加密算法,面对专业密码分析手段时,安全性有限。

再来让豆包给我们来评价一下这两个算法的破解难度:

数字置换算法

破解难度(2星 )

  • 密钥与规则简单:“三多算法”中,密钥字(如“WORLD” )和钥匙数(如“18648” )相对简单,若通过频率分析、尝试常见词汇等方式,较易猜测出密钥字 。钥匙数虽用于位移,但数值范围有限,暴力破解可行性较高。

  • 操作规则固定且简单:加密过程中明文扰乱方式、插入钥匙字和位移操作规则都比较简单,缺乏复杂的非线性变换或混淆扩散机制,攻击者掌握规则后,可针对性地进行破解尝试。

可能存在的漏洞

  • 密钥空间小:密钥字一般为常见单词,钥匙数通常是有限长度数字,导致密钥组合数量少,攻击者能在短时间内穷举尝试。

  • 加密规则易暴露:算法步骤相对固定和简单,若获取一定量密文,通过分析字符出现频率、位置变化等特征,容易推断出加密规则,进而破解密文。

  • 缺乏完整性校验:算法未对密文完整性进行校验,攻击者可对密文进行篡改,接收方无法察觉,影响信息真实性和安全性。

三多算法

破解难度(2星 )

  • 密钥特征明显:算法中使用的钥匙字(如“WORLD” )通常是常见英文单词 ,在语言中出现频率有迹可循,通过频率分析、词库匹配等方式较易猜出;钥匙数(如“18648” )一般为有限长度数字,可暴力破解的范围小。

  • 加密规则简单:明文扰乱方式有限且规律性强,插入钥匙字和位移操作都是简单机械的处理 ,缺乏复杂混淆和扩散机制,攻击者掌握一定密文后,容易分析出加密规则并逆向推导。

可能存在的漏洞

  • 密钥空间狭窄:钥匙字和钥匙数组合数量少,攻击者可在短时间内穷举尝试所有可能密钥组合,实现快速破解。

  • 规则暴露风险高:算法步骤固定、逻辑简单,若获取一定数量密文,通过统计分析字符频率、位置变化等,易推断出加密规则,进而解密。

  • 无密文完整性保护:未对密文完整性校验,攻击者可对密文篡改,接收方无法察觉,导致信息真实性、完整性受破坏。

其实我对三多算法还是挺满意,因为攻击者在不知道打乱顺序、移位数字和插入的钥匙字的话,是很难破解的。而即使知道了这三个中的其中一个,也无法推导出其他两个,即使知道了两个,也无法知道最后一个。 而数字置换算法,我认为破解者可能会一个个的尝试密钥数字,最终破解出来,所以我认为这个不太安全。

评论