摘要: 之前讨论的密码体制都是代换密码,即明文字母被不同的密文字母所代替。置换密码的特点是保持明文的所有字母不变,只是利用置换打乱明文字母的位置和次序。 例如,设m=6,密钥为如下的置换π: 置换π-1: 若明文是:shesellsseashellsbytheseashore,则首先将明文字母分成为每6个一 阅读全文
posted @ 2021-12-08 22:23 vicky2021 阅读(1517) 评论(0) 推荐(0) 编辑
摘要: 另一种多表代换密码是希尔密码,这种密码体制是Lester S. Hill于1929年提出的。希尔密码的主要思想是利用线性变换的方法,只是这种变换是在Z26上进行的。 例如,设m=2,每个明文单元使用x=(x1,x2)来表示,同样密文单元使用y=(y1,y2)来表示。具体加密中,y1,y2将被表示为x 阅读全文
posted @ 2021-12-08 21:34 vicky2021 阅读(1201) 评论(0) 推荐(0) 编辑
摘要: 移位密码和代换密码,一旦密钥被选中,则每个字母对应的数字都会被加密,变换成对应的唯一数字。 这种密码体制被称为单表代换密码。 维吉尼亚密码是一种多表代换密码,发明者是16世纪的法国人Blaise de Vigenere。 假设m=6,密钥字为CIPHER,对应如下的数字串K=(2,8,15,7,4, 阅读全文
posted @ 2021-12-07 08:27 vicky2021 阅读(3897) 评论(0) 推荐(0) 编辑
摘要: 代换密码的另一个特殊情形是仿射密码,它的加密函数定义为 e(x)=(ax+b)mod 26,其中a,b∈Z26 —— 因为这样的函数被称为仿射函数,所以这样的密码体制也被称为仿射密码(当a=1时,正好是移位密码)。 为了能对密文进行解密,必须保证所选用的仿射函数是一个单射函数,则对于任意的y∈Z26 阅读全文
posted @ 2021-12-06 22:56 vicky2021 阅读(2869) 评论(0) 推荐(0) 编辑
摘要: 另一个比较有名的古典密码体制是代换密码,它是代换密码的一种特殊情形。 在移位密码中,加密和解密都是代数运算,但是在代换密码中,可以认为P和C是26个英文字母,并且可以认为加密和解密的过程直接看作是在一个字母表上的置换。 任意取一置换,即可得到加密函数,见下表(小写字母表示明文,大写字母表示密文): 阅读全文
posted @ 2021-12-03 07:40 vicky2021 阅读(978) 评论(0) 推荐(0) 编辑
摘要: 移位密码的理论基础是数论中的模运算。 模运算的基本定义:假设a和b均为整数,m是一正整数。若m整除a-b,则可将其表示为a≡b(mod m),正整数m称为模数。 模运算m上的算术运算定义:令表示集合{0,1,...,m-1},在其上定义两个运算,加法(+)和乘法(x) —— 运算类似于普通的实数域上 阅读全文
posted @ 2021-12-02 22:57 vicky2021 阅读(4890) 评论(0) 推荐(0) 编辑
摘要: 线性表,是最简单、基本和常用的一种线性结构。 一个线性表是n个元素的有限序列,通常表示为(a1, a2, ... , an),非空线性表的特点如下: 存在唯一的一个”第一个“的元素。 存在唯一的一个”最后一个“的元素。 除第一个元素外,序列中的每个元素均只有一个直接前驱。 除最后一个元素外,序列中的 阅读全文
posted @ 2021-09-08 23:18 vicky2021 阅读(248) 评论(0) 推荐(0) 编辑
摘要: 软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,目的是提高软件生产率、提高软件质量、降低软件成本。 美国软件工程师B.W.Boehm于1983年提出了软件工程的七条基本原理。它是确保软件产品质量和开发效率的原理的最小集合。 一、用分阶段的生命周期计划严格管 阅读全文
posted @ 2021-09-04 16:52 vicky2021 阅读(2382) 评论(0) 推荐(0) 编辑
摘要: 一、能力成熟度模型(CMM) 能力成熟度模型(CMM, Capability Maturity Modeling)的目的是提供一种评价软件承接方能力的方法,帮助软件组织改进软件过程。CMM模型提供了一个框架,将软件过程改进的进化步骤分为5个成熟度等级: 初始级 Initial 特点:杂乱无章,完全依 阅读全文
posted @ 2021-09-04 16:23 vicky2021 阅读(125) 评论(0) 推荐(0) 编辑
摘要: 一个软件产品或系统经历孕育、诞生、成长、成熟、衰亡的许多阶段,称为软件生存周期。把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大、结构复杂和管理复杂的软件开发变得容器控制和管理。软件生存周期一般包含以下阶段 可行性分析与项目开发计划 需求分析 概要设计 详细设计 编码 测试 维护 阅读全文
posted @ 2021-09-02 22:56 vicky2021 阅读(385) 评论(0) 推荐(0) 编辑