计算机病毒密码技术,信息战、密码技术和计算机病毒.ppt

信息战、密码技术与计算机病毒;2. 第一次世界大战时期德军使用过的一种实用战地密码——ADFGX乘积密码及其具体体现乘积密码是移位密码和替代密码的有限次组合。在这种意义上讲,它又是一种混合密码,在一定程度上可以提高密码的抗破译攻击强度。在第一次世界大战期间,德军司令部曾先后启用了一位无线电参谋设计的乘积编码 ——ADFGX密表密码和ADFGVX密表密码。虽然由于它们都是一次替代加密和一次移位加密的组合,其安全程度有限——最终被法国密码局最优秀的密码分析家所破译,但仍不失为第一次世界大战期间最著名的战场实用密码之一。;ADFGX密表密码对明文加密的步骤: (1) 生成换字方阵首先生成ADFGX密表(其中小写字母为明文字母),如表10.3(见书374页)和图10.9 (见书374页)所示。;(2) 利用ADFGX密表对明文进行“替代”加密替代加密的方法是,按该密表先从右至左,后从下至上的次序将明文中的每一个字母一一转换成密文“字母对”,例如明文字母h要用密文“字母对”—FD替代,而不是用DF替代;或者先将ADFGX密表按“从右至左,从下至上”的次序,生成明文字母集和密文“字母对”集的映射关系表,如表10.4(见书374页)所示,再依表10.4将明文中的每一个字母变换成相应的密文“字母对”。;设明文P = Computer virus weapon in information warfare则其相应的替代密文C1为:C1=GF DD GA XF AX GX XA AG DX XD AG AX FF XX XA FA XF DD AA XD AA XD AA FX DD AG GA FA GX XD DD AA XX FA AG FX FA AG XA;(3) 对已生成的替代密码进行“移位”加密对第(2)步已生成的替代密码C1,按给定的数字乱序(例如含有1~5的5个整数乱序)排成横排,将C1中所有的“字母对”拆开成单个字母。这里所设的数字乱序可以是1-2-3-4-5或5-3-2-4-1;亦可用含1~7的7个整数乱序,如7-6-5-4-3-2-1或4-6-1-5-2-7-3等。本例取2-5-4-1-3作为密钥key,对C1进行“移位”再变换,如表10.5(见书375页)所示。注意C1中各字母的输入方向是从上到下,从左到右。;(4) 由移位密码生成ADFGX密表密码密文C2按密钥key数字值的升序,把表10.5中的纵列字母从上到下排成横列输出,即得C2。对于本例,先输出数字“1”下面的字母: DAAAXXXF…;其次输出key中数字“2”下面的字母: GAGGAFFD…;最后输出key中数字“5”下面的字母: FXXDGXAA…。本例最终生成的ADFGX密表密码密文C2为: C2=DAAXX XFXDD AXAAA GAGGA FFDAA AADXF GGXAD FADDA DFDXG ADFXX AXXAX XGXAA FAFXX DGXAA AFGGD FXX;按照上述步骤生成ADFGX密表密码在Windows环境下的Visual Basic 6.0程序及其运行结果如下: Private Function Encrypt(ByVal Text As String, n As Integer, _strCharP As String, strCharT As String, strSort As String) As String′加密函数′参数为源字符串和密表相关参数,返回值为加密字符串

Dim Length As IntegerDim i As Integer, j As IntegerDim t As String * 1Dim strFirst As String;Dim strSecond As String

′ - - - - - - - - - - - - - - - - - - - - - - ′装载密表′密表明文字母表Dim CharT() As String * 1′密表密文字母表Dim CharP() As String * 1′移位加密顺序表Dim Sort() As StringReDim CharT(n ^ 2 - 1), CharP(n - 1)′获取顺序列表Sort = Split(strSort, ″-″);′装入密表明文字母表For i = 0 To n ^ 2 - 1CharT(i) = Mid(strCharT, i + 1, 1)Next i

′装入密表密文字母表For i = 0 To n - 1CharP

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值