编程任务要求 编程语言为C语言或其它语言,要求提交加密、 解密、破解源代码文件。 实现对任意有意义的英文文本文件(*.txt)的 Virginia加密、解密算法,其中秘钥是任意输 入的一个字符串。要求提供明文文本文件、密 文文本文件。 在不知道秘钥的情况下,对一个用Virginia加 密算法生成的密文文本文件进行破解,包括破 解秘钥、生成对应的明文。要求提供程序测试 说明文档
编程任务要求 • 编程语言为C语言或其它语言,要求提交加密、 解密、破解源代码文件。 • 实现对任意有意义的英文文本文件(*.txt)的 Virginia加密、解密算法,其中秘钥是任意输 入的一个字符串。要求提供明文文本文件、密 文文本文件。 • 在不知道秘钥的情况下,对一个用Virginia加 密算法生成的密文文本文件进行破解,包括破 解秘钥、生成对应的明文。要求提供程序测试 说明文档
Virginia加密算法、解密算法
Virginia加密算法、解密算法
Virginia加密算法 ·假设语言的字符集为 Charset[26]=a','b',...'z' 字符集大小=26 ·对应的字符编码为 C0ding[26]={0,1,,25}
Virginia加密算法 • 假设语言的字符集为 Charset[26]={‘a’, ’b’, …, ’z’} 字符集大小=26 • 对应的字符编码为 Coding[26]={0, 1, …, 25}
Virginia加密算法 ·Virginia加密算法是对明文进行加密的 过程中依照密钥的指示轮流使用多个 单表代替密码。 ·设明文串为: M=mm2.mn,m,∈charset,,n是明文长度 ·秘钥为: K=kk2.ka,k,∈charset,.d是秘钥长度 ·密文为: C=CC2.Cn,C,∈charset,n是密文长度
Virginia加密算法 • Virginia加密算法是对明文进行加密的 过程中依照密钥的指示轮流使用多个 单表代替密码。 • 设明文串为: M=m1m2…mn,mi∈charset, n是明文长度 • 秘钥为: K=k1 k2…kd,ki∈charset, d是秘钥长度 • 密文为: C=c1 c2…cn,ci∈charset, n是密文长度
Virginia加密算法 ·加密算法: Cjtu(mitid+ki mod 26 j=1...d,t-0...ceiling(n/d)-1 其中ceiling(x)函数表示不小于x最小整数 解密算法: mjtud-(cita-ki)mod 26 j=1...d,t=0...ceiling(n/d)-1 其中ceiling()函数表示不小于x最小整数
Virginia加密算法 • 加密算法: cj+td=(mj+td+kj ) mod 26 j=1…d, t=0…ceiling(n/d)-1 其中ceiling(x)函数表示不小于x最小整数 • 解密算法: mj+td=(cj+td -kj ) mod 26 j=1…d, t=0…ceiling(n/d)-1 其中ceiling(x)函数表示不小于x最小整数