Advertisement

EdSelector密码学(finally)

阅读量:

第4关:维吉尼亚密码

任务描述

在前面所讨论的移位密码和替换密码中,一旦选定密钥后,每个字母都被转换为对应的唯一数字.单表代换加密系统通常被称为维吉尼亚密码,它则是一种多表替代编码方案.

本关任务:使用C++语言开发维吉尼亚密码系统,并对输入的明文字符串执行维吉尼亚加解密操作并输出结果。

相关知识

为了完成本关任务,你需要掌握:维吉尼亚密码的密码体制。

维吉尼亚密码的密码体制

维吉尼亚密码(亦称作维热纳尔密码)是一种基于一系列凯撒密码构建其密码字母表的复杂但较为简单的多表替换技术。它可被视为一种较为简单的多表替换技术。下面将详细阐述其具体定义。令m为一自然数,则有P=C=K=(Z_{26})^m(值得注意的是,在这种情况下由于维吉尼亚密码是一种多表代换体制,在解密时相同的明文字符可能会被加密成不同的密文字符)。对于任一给定的密钥序列K = (k₁,k₂,…,kₘ),我们定义映射e_k(x₁,x₂,…,xₘ) = (x₁+k₁,x₂+k₂,…,xₘ+kₘ),其中该映射即为此处所指的加密函数

dk(y1,y2,...,ym)=(y1−k1,y2−k2,...,ym−km)这个是解密函数。

具体来说,在Z26的基础上进行所有运算。对于维吉尼亚密码的基本原理而言,在此之前你的理解可能还存在一定的欠缺。让我们通过一个具体的实例

全部评论 (0)

还没有任何评论哟~