密码技术应用系列之0:开篇
前言
随着信息化进程的逐渐深入,信息安全问题逐渐变得非常重要。信息安全即是运用各种密码技术,保证信息的安全存储和传输。本系列将会逐一讲述密码学相关技术的应用,包括编码技术、摘要运算技术、对称加密技术、非对称加密技术和数字证书技术等。
本文的主题是密码技术应用,不会对密码算法进行深入研究。密码算法原理深奥难懂,除非打算做算法设计,否则没有必要去深入研究,只需要了解大致原理,以帮助我们更好的应用及快速分析解决问题就行了。
.NET Framework的类库在密码算法的支持方面不是很全,幸运的是,.NET平台有一个并不算完善的开源密码库BouncyCastle,该库源自JAVA平台,类似于C语言中大名鼎鼎的OpenSSL库。本文所有示例除SHA1算法由.NET Framework提供外,其余均由BouncyCastle提供。
本系列示例使用C#语言描述,开发环境为Windows7旗舰版+Visual Studio 2010 sp1旗舰版。
密码学概述
本文通过老张和Apollo两人(其实都是我啦:)的安全通讯问题场景,引申出本系列将要讲解的各种密码技术。你可以将本文看成是安全通讯的需求分析,以及使用本系列将要讲解的各种密码技术实现这些需求的概要设计。本系列最后一篇文章将遵照这个设计实现一个安全即时通讯原型产品。
编码技术
编码技术是一种古典密码技术,它源于对古人对信息传输安全保护的初步尝试。编码技术是一种基于算法的安全技术,一旦算法规则泄露,信息也就不再安全。
摘要运算技术
摘要运算也叫杂凑运算、Hash运算,其特点在于运算的单线性(不可逆),即通过摘要值无法计算出原文。摘要运算技术的应用非常广泛,可以用于数据的不可逆加密(常用于口令的加密存储,还记得CSDN因密码明文存储带来的密码泄露门事件吗?),也可用于与非对称加密技术结合实现数字签名技术等。本文将介绍摘要算法的基本原理,常见算法实现,以及典型应用场景等。
对称加密技术
对称加密技术是一种常用的数据加密技术,其特点在于加解密所用密钥相同,且运算速度快,通常用于大数据加密。本文将介绍对称加密技术的基本原理,常见算法实现,以及典型应用场景等。
非对称加密技术
非对称加密技术是一种常用的加密技术,其特点在于加解密所用密钥不同,密钥都是成对(公钥+私钥)产生,公钥对外公开,私钥由持有人自行保管。非对称加密技术较对称加密技术安全性高,但运算速度要慢得多,所以一般不直接用于大数据加密,而是配合摘要算法进行数字签名,以及配合对称算法制作数字信封。本文将介绍非对称算法的基本原理,常见算法实现,以及典型应用场景等。
数字证书技术
数字证书技术是公钥基础设施(PKI)的核心技术,目前已广泛应用于信息安全领域,例如支付宝数字证书、网银数字证书等。虽然数字证书已经或多或少的进入了我们的生活,但它究竟是个什么东西?它如何对我们的通讯信息进行安全保护?本文将从标准、原理、实现和应用等多方面为你解答这些问题。
密码技术综合应用——安全即时通讯工具的实现
本文是基于本系列《密码学概述》一文所述需求及设计,所实现的一个安全即时聊天工具的原型产品,该工具将综合运用本系列所讲述的各种密码技术,实现双方的安全即时通讯。包括使用数字签名技术(涉及摘要运算技术、非对称加密技术和数字证书技术)实现双方身份认证,并保证消息的真实性和完整性;使用数字信封技术(涉及对称加密技术、非对称加密技术和数字证书技术)保证传输消息的机密性。
总结
本文作为本系列的开篇,以提纲的方式列出了本系列将讨论的主题,并对每个主题作了简单介绍。下一篇将对密码学的发展进行概要论述。