设明文消息元素个数为n,密钥为k。
密钥k在选取的时候应满足两个条件:
(1)0kn
(2)k与n互素
设明文消息为M,消息元素为m;
则密文消息为C,密文元素为c=m*k mod n;
其解密过程如下:
首先要得到解密密钥,就是要求得加密密钥k模n的逆元;
具体求法为k *mod n=1;
然后计算m=c *mod n即可得到明文消息M。
举例说明如下:
英文字母有26个,即n=26;
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
M=m[26]={a , b , c ,d , e , f , g , h , i , j , k , l , m , n , o , p , q , r , s , t , u , v , w , x , y , z };
我们选取密钥k=5;
现在我们对hello进行加密
hello所对应的数组为[8,5,12,12 15];
由于8*5 (mod 26) =40(mod)26=14;
依次类推,可得到加密后的数组为[ 14 , 25,8,8, 23 ];
对应的密文消息就是nyhhw
现在我们开始对nyhhw解密
首先要求得解密密钥;
由于5*21(mod 26)=105(mod26)=1;
所以=21;
nyhhw所对应的数组为[ 14 , 25,8,8, 23 ];
由于14*21(mod26)=294(mod26)=8;
依次类推,可得到解密后的数组为[8,5,12,12 15];
对应的明文消息就是hello。
一、序列密码概述
序列密码也称为流密码(Stream Cipher),它是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点,因此在实际应用中,特别是专用或机密机构中保持着优势,典型的应用领域包括无线通信、外交通信。
它的加密方式是将明文和密钥进行异或运算,如:明文a,ASCLL码为97,二进制嘛为0110 0001;密钥为B,ASCLL码为66,二进制码为0100 0010,然后再按位异或:
明文 0 1 1 0 0 0 0 1
密钥 0 1 0 0 0 0 1 0
密文 0 0 1 0 0 0 1 1
这样得到的密文为0010 0011,对应的ascll为35,即“#”。
当我们拿到密文“#”以及密钥“B”以后,我们同样按照转换为ASCLL码,按位异或的方式,获得明文:
密文 0 0 1 0 0 0 1 1
密钥 0 1 0 0 0 0 1 0
明文 0 1 1 0 0 0 0 1
这样,我们获得了“0110 0001”,转换为十进制为97,对应ASCLL表,得到了字符“a”。
二、序列密码的定义
这里我们对序列密码的加密与解密有以下定义:
明文、密文和密钥序列都是由单独的位组成,即:Xi,Yi,Si ∈{0,1}
加密:Yi = (Xi + Si) mod 2
解密:Xi = (Yi + Si) mod 2
三、序列密码的特点
序列密码如果使用统一密钥多次拦截后,可以从其中的规律中推导出密钥。1941-1946年间,苏联多次使用同一密码本以便节约成本,最后被美国破译,在美国称为Venona计划。为了让序列秘密更加安全,于是产生了一次性密钥,但是序列密码最大的问题有两点:
1.密钥长度与明文长度一致,如果需要加密20M的明文,那么就需要20M的密文
2.序列密码容易被篡改。
四、简单的序列密码解密
知道了序列密码的原理,解密过程就简单了,只需要将密文与密钥按字符依次取出,转换为ascll码,按位异或,再将其组合为字符串即可获得明文。
这里,因为存在特殊符号,我们就先去askll码表中,查到了每个符号对应的askll码,如下:
"11","9","43","43","44","6","49","41","21","2","56","39","1","47","20"
这样,我们就可以通过powershell,将密文进行解密了,代码如下:
[string[]]$a_arr ="11","9","43","43","44","6","49","41","21","2","56","39","1","47","20"
[string]$miyue="EfcDAcFFgilHeNm"
[int]$cd = $miyue.Length
[char[]]$b_arr = $miyue.ToCharArray()
[string]$e_arr =""
for($i=1;$i -le $cd; $i++ )
{
[int]$c = $b_arr[$i-1]
[int]$d = $c -bxor $a_arr[$i-1]
[char]$e = $d
[string]$e_arr =$e_arr + $e
}
echo $e_arr
登录后复制
输出的结果为:
这就完成了对序列密码的解密。
为word
2007文档加密及解密的方法
第一种方法,使用2007版本word打开文件,设置密码进行加密
使用这种加密方法,比较简单。没有借助其他软件,属于加密文件的入门级别,保密性不强。具体的操作步骤如下:
步骤1:安装2007版本word,打开需要加密的文件,在office按钮处,单击“准备——加密文档”选项。
步骤2:在弹出的窗口输入密码,之后的复选框确认设置的密码,并按“确认”。
步骤3:回到菜单界面,再次单击office按钮,点击“保存”选项,再关闭文件即可。
解密的操作步骤1、3与加密的步骤一致。唯一不同点步骤2,在弹出的窗口,将密码去掉,按“确定”按钮即可。
第二种方法,使用第三方文件加密软件,直接进行文件加密。
使用这种方法需要安装一个文件加密软件,加密2007版本的word文档更加牢固,文件信息安全有保障。我个人比较推荐使用这种加密方法。这里我以免费的护密文件夹加密软件为例。具体的操作步骤如下所示:
步骤1:首先在安装护密文件夹加密软件后,需要设置护密软件的开启密码。
步骤2:然后点击左侧的“加密文件”选项,在弹出的窗口处选择需要加密的文件。
步骤3:最后在弹出“输入密码”窗口,填写密码后,可选择保护方式,操作完成后按“确定”。
文件解密的步骤如下所示:
步骤1:打开护密文件夹加密软件,键入该软件的开启密码。
步骤2:操作列表里会显示已加密过的文件,选择要解密的文件,点击右键的“解除”。
步骤3:最后在弹出的窗口处输入加密文件的密码,如果想要打开该文件,请选择“打开”,反之则选择“恢复”,并且单击“确定”按钮。
excel2007是微软office的办公软件之一,它可以进行数据的整理、分析。如果不想让别人看到或者擅自修改的话,excel文件加密可以起到一定程度的保护。那么下面我就教你怎么给excel2007加密和解密,希望对你有帮助!
excel2007加密和解密的步骤
加密
打开想要加密的excel文档,点击左上角的图标,选择 准备→加密文档。
excel2007加密和解密的步骤图1
输入密码。
excel2007加密和解密的步骤图2
再输入一次密码。确认。
excel2007加密和解密的步骤图3
重新打开这个文档,看看效果。
excel2007加密和解密的步骤图4
解密
打开已加密的文档,输入密码。
excel2007加密和解密的步骤图5
点击左上角图标→另存为→其他格式。
excel2007加密和解密的步骤图6
弹出另存为窗口,选择工具下拉→常规选项。
excel2007加密和解密的步骤图7
清除打开权限密码。确认。即完成。
excel2007加密和解密的步骤图8 下一页更多精彩“excel2007数据加密的 方法 ”