计算机密码应用基础

科学出版社出版的图书
《计算机密码应用基础》是2007年科学出版社出版的一本书，作者是孙琦。
内容简介
内容涉及密码学中几大“核心”领域，包括分组密码、香农理论、序列密码、公钥密码以及他们的应用，其中还涉及必要的数学知识。本书可供高等院校计算机系、无线电系、数学系等专业用作密码学教材或参考书，也可供从事计算机科学、通信理论、密码学等工作的科技人员参考。
目录
第一章简单密码体制及分析
1.1密码学的基本概念
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律，应用于编制密码以保守通信秘密的，称为编码学；应用于破译密码以获取通信情报的，称为破译学，总称密码学。
密码学是研究编制密码和破译密码的技术科学。研究密码变化的客观规律，应用于编制密码以保守通信秘密的，称为编码学；应用于破译密码以获取通信情报的，称为破译学。总称密码学。
密码学（在西欧语文中，源于希腊语kryptós“隐藏的”，和gráphein“书写”）是研究如何隐密地传递信息的学科。在现代特别指对信息以及其传输的数学性研究，常被认为是数学和计算机科学的分支，和信息论也密切相关。著名的密码学者Ron Rivest解释道：“密码学是关于如何在敌人存在的环境中通讯”，自工程学的角度，这相当于密码学与纯数学的异同。密码学是信息安全等相关议题，如认证、访问控制的核心。密码学的首要目的是隐藏信息的涵义，并不是隐藏信息的存在。密码学也促进了计算机科学，特别是在于电脑与网络安全所使用的技术，如访问控制与信息的机密性。密码学已被应用在日常生活：包括自动柜员机的芯片卡、电脑使用者存取密码、电子商务等等。
密码是通信双方按约定的法则进行信息特殊变换的一种重要保密手段。依照这些法则，变明文为密文，称为加密变换；变密文为明文，称为脱密变换。密码在早期仅对文字或数码进行加、脱密变换，随着通信技术的发展，对语音、图像、数据等都可实施加、脱密变换。
1.2一些简单密码体制与它的破译
1.2.1置换密码
置换密码(permutation cipher)，又称换位密码
（transposition cipher)：明文的字母保持相
同，但顺序被打乱了。
置换只不过是一个简单的换位，每个置换都可以用一个置换矩阵Ek来表示。每个置换都有一个与之对应的逆置换Dk。置换密码的特点是仅有一个发送方和接受方知道的加密置换（用于加密）及对应的逆置换（用于解密）。它是对明文L长字母组中的字母位置进行重新排列，而每个字母本身并不改变。
令明文m=m1,m2,...mL。令置换矩阵所决定的置换为pi，则加密置换
c=Ek(m)=(c1,c2,...cL)=mpi(1),mpi(2),...,mpi(L)
解密置换
d=Dk(c)=(cn^-1(1),cn^-1(2),...cn^-1(L))
1.2.2单表代替密码
1.2.3单表代替密码的统计分析
1.2.4多表代替密码
多表代替密码：由多个简单的代替密码构成，例如，可能有5个被使用的不同的简单代替密码，单独的一个字符用来改变明文的每个字符的位置。
1.2.5对.igenere密码的分析
1.2.6代数密码
1.2.7Hill加密算法
1.2.8关于Hill密码的已知明文攻击
习题
第二章分组密码
2.1DES数据加密标准
数据加密算法（Data Encryption Algorithm，DEA）是一种对称加密算法，很可能是使用最广泛的密钥系统，特别是在保护金融数据的安全中，最初开发的DEA是嵌入硬件中的。通常，自动取款机（Automated Teller Machine，ATM）都使用DEA。它出自IBM的研究工作，IBM也曾对它拥有几年的专利权，但是在1983年已到期后，处于公有范围中，允许在特定条件下可以免除专利使用费而使用。1977年被美国政府正式采纳。
2.1.1DES加密算法
DES加密算法（Data Encryption Algorithm，DEA）是一种对称加密算法，很可能是使用最广泛的密钥系统，特别是在保护金融数据的安全中，最初开发的DEA是嵌入硬件中的。通常，自动取款机（Automated Teller Machine，ATM）都使用DEA。它出自IBM的研究工作，IBM也曾对它拥有几年的专利权，但是在1983年已到期后，处于公有范围中，允许在特定条件下可以免除专利使用费而使用。1977年被美国政府正式采纳。
2.1.2DES加密的一个例子
2.2FEAL密码
2.3IDEA密码系统
2.4分组密码的应用技术
习题
第三章香农理论
3.1密码体制的概率分布
3.2熵
熵（entropy）指的是体系的混乱的程度，它在控制论、概率论、数论、天体物理、生命科学等领域都有重要应用，在不同的学科中也有引申出的更为具体的定义，是各领域十分重要的参量。熵由鲁道夫·克劳修斯（Rudolf Clausius）提出，并应用在热力学中。后来在，克劳德·艾尔伍德·香农（Claude Elwood Shannon）第一次将熵的概念引入到信息论中来。
3.3条件熵
3.4多余度和唯一解码量
3.5完全保密体制
习题
第四章序列密码和移位寄存器
4.1引言
4.2序列密码的一般原理
序列密码也称为流密码（Stream Cipher），它是对称密码算法的一种。序列密码具有实现简单、便于硬件实施、加解密处理速度快、没有或只有有限的错误传播等特点，因此在实际应用中，特别是专用或机密机构中保持着优势，典型的应用领域包括无线通信、外交通信。 1949年Shannon证明了只有一次一密的密码体制是绝对安全的，这给序列密码技术的研究以强大的支持，序列密码方案的发展是模仿一次一密系统的尝试，或者说“一次一密”的密码方案是序列密码的雏形。如果序列密码所使用的是真正随机方式的、与消息流长度相同的密钥流，则此时的序列密码就是一次一密的密码体制。若能以一种方式产生一随机序列（密钥流），这一序列由密钥所确定，则利用这样的序列就可以进行加密，即将密钥、明文表示成连续的符号或二进制，对应地进行加密。
序列密码与分组密码的对比
分组密码已一定大小作为每次处理的基本单元，而序列密码则是以一个元素（一个字母或一个比特）作为基本的处理单元。
序列密码是一个随时间变化的加密变换，具有转换速度快、低错误传播的优点，硬件实现电路更简单；其缺点是：低扩散（意味着混乱不够）、插入及修改的不敏感性。
分组密码使用的是一个不随时间变化的固定变换，具有扩散性好、插入敏感等优点；其缺点是：加解密处理速度慢、存在错误传播。
序列密码涉及到大量的理论知识，提出了众多的设计原理，也得到了广泛的分析，但许多研究成果并没有完全公开，这也许是因为序列密码目前主要应用于军事和外交等机密部门的缘故。目前，公开的序列密码算法主要有RC4、SEAL等。
4.3线性移位寄存器
4.4线性移位寄存器的一元多项式表示
4.5m序列的伪随机性
4.6m序列密码的破译
4.7非线性序列
习题
第五章RSA公钥密码体制
5.1概论
5.2计算复杂性理论
5.2.1算法复杂性
5.2.2问题复杂性和NP完全问题
5.3必备的数论知识
5.3.1同余方程和中国剩余定理
5.3.2欧几里得算法
5.3.3Wilson定理
5.3.4欧拉函数
5.3.5平方剩余和Jacobi符号
5.4RSA公钥系统
5.4.1RSA加密算法
5.4.2RSA安全性讨论
5.5RSA公钥密码体制的一种改进方案
5.5.1RSA公钥密码体制的一种潜在弱点
5.5.2RSA公钥体制改进方案
5.5.3RSA改进方案的安全性分析
5.5.4改进方案举例
5.6大素数的产生
5.7因数分解
5.7.1Fermat因数分解法
5.7.2连分数因数分解法
5.7.3用圆锥曲线分解整数
5.7.4P-1方法
5.8对RSA体制中小指数的攻击
5.9Rabin密码体制
5.lORSA在有限域Fp上多项式上的推广
5.10.1Fp上的多项式
5.10.2RSA在Fp上的多项式上的推广
习题
第六章其它公钥密码体制
6.1背包公钥系统
6.2群论中有关概念和结果
6.3离散对数公钥密码体制
6.4离散对数问题的算法
6.5概率公钥体制
6.6关于Fp上的椭圆曲线
6.7E(Fq)中密码体制与明文嵌人方法
6.8有限域Fp上圆锥曲线的公钥密码系统
6.9双密钥公开钥密码体制
6.10公钥密码系统的应用
习题
第七章数字签名
7.1利用公开密钥密码获得数字签名
7.2利用传统密码获得数字签名
7.3美国数字签名标准DSS
7.4不可否认的签名协议
习题
参考文献