lanminxian 发表于 2013-6-8 12:48

密码技术概述

密码技术概述

密码技术严格来说不等同于密码学,密码学是一门极其深入的学科,密码技术只是一种可行性技术手段,是密码学的子集。

以下我们将初步的介绍密码技术的概念并着重解释最基础的古典密码。

我们知道,如今在网络交换信息都存在着普遍的安全性问题,而密码技术则是对信息提供保护的,最基础并且有效地方法。事实上,现在网络上应用的 保护信息安全的技术(包括不限于:数据加密技术、数字签名技术、消息认证与身份识别技术、防火墙技术以及反病毒技术等)都是以密码技术为基础的。另外电子商务的各种支付系统也是基于密码技术来设计的。可以说,密码技术是一切后续高级加密手段的基础,与安全离不开联系。

在密码算法的基础上,我们可以构建出基本的安全体制,主要包括:
(1) 加密:可以对各种信息进行加密(如静态存储数据、网络传输数据等),实现保密性的功能。
(2) 数字签名:可以实现数据的真实性和不可否认性的功能。
(3) 认证:可以保证身份的真实性和数据的完整性功能。
※注意理解数据真实性和身份真实性的区别。

有了基本的安全体制,就可以发展各种安全应用,比如电子商务,安全远程登录,安全电子邮件等。
具体可以参见以下图例(比例大小不代表重要程度,仅代表本人绘画水平停留在小学级别………………)
http://www.cnhonkerarmy.com/data/attachment/album/201106/17/171733cc0p0wcoivvjeo3k.jpg

好了,说了那么多,相信大家已经对密码技术有了初步的认识,那么,我们接下来真正走入这个富于魅力的殿堂吧!

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

以下内容,需要一定的高数基础,毕竟密码学跟高数是不可分割的,但是我们讲的很浅显,我也会尽力简化,所以不要担心……呵呵

在密码技术中,通过不安全的通信媒介进行安全通信的问题密码技术研究的最基本。它的背景是当参与者通过一个信道进行通信,可能被第三者搭线窃听,而这样的窃听是双方不希望发生的。
举个例子,日常生活中两个人通过电话联系,无论内容是什么,相信两个人都不希望有多余的第三者听到,况且有时候两人交流的内容是极其重要且机密的。
这时就需要用到密码技术,对通信内容进行加密,实际上,对通信内容加密远远比对保证通信信道安全来的经济有效,你不能为了一点点临时性的事情就去搭设物理专线,就好像你不能为了一个银行卡密码,就从北京亲自飞到重庆来告诉谁一样。

在密码体制中,我们把能够正常阅读的信息成为明文(plaintext或cleartext),对明文进行某种变换,使其变成内容无法被别人直接读懂的过程成为加密(encryption),加密后的信息成为密文(ciphertext),将密文恢复为明文的过程成为解密(decryption),而控制或参与加密解密过程的参数称为密钥(key),通常情况下,一个典型的密码体制由5部分组成:
(1) 明文空间M,它是全体明文的集合。
(2) 密文空间C,它是全体密文的集合。
(3) 密钥空间K,它是全体密钥的集合。其中一个密钥K均由加密密钥Ke和解密密钥Kd组成,即K=<Ke,Kd>。
(4) 加密算法E,它是一族由M到C的加密变换。
(5) 解密算法D,它是一族由C到M的解密变换。
以下是密码体制图,同样,比例大小不代表重要程度,仅代表本人绘画水平停留在小学级别,谁再讨论这个,我就傲娇了哦!
http://www.cnhonkerarmy.com/data/attachment/album/201106/17/174041p9evx6vpsataa6tv.jpg

对于一个确定的密钥,加密算法将确定一个具体的加密变换,表示为C=E(M,Ke)
解密算法则将确定一个具体的解密变换,表示为M=D(C,Kd)
需要了解的是,解密变换是加密变换的逆变换,那么我们可以表示为M=D(C,Kd)=D(E(M,Ke),Kd)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

密码分析攻击

主要有以下三种:
(1) 穷举攻击
顾名思义,就是分析者尝试所有可能的密钥对密文进行解密,这种是最基础最简单的方法,但是值得注意,理论上,只要有足够多的资源,那么穷举攻击可以破译一切密码。
(2) 统计分析攻击
分析者根据分析密文和明文的规律来破译密码,鉴于加密方式的缘故,许多古典密码可以轻易被统计分析攻击予以破解。
(3) 数字分析攻击
指分析者针对加密算法的数学基础和密码特性,通过数学的方法予以破解,这类攻击多数用于针对代数密码等数学性较强的加密方式。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

接下来,我们针对密码技术本身,跟大家详细分析最基础的古典密码:
古典密码包括置换密码,代替密码和代数密码,介于初学的原因,我给大家讲解单表代替密码。

所谓单表代替密码,就是它只使用一个密文字母表,并且密文字母表中的一个元素来代替明文字母表中的一个元素。
设A和B分别是明文列表和密文列表,其中:
A={12,3234,198}
B={B1,B2,B3}
定义A到B的映射F:F:A→B
这里根据映射F的不同,又可以分为几个方面,我们同样讲解其中最简单的加法密码。
即定义F:A+1=B(A!=9)&&0=B(A==9)   (伪代码,为了配合后续C例题)
那么B的元素应该为:B(23,4345,209)

这样即完成了对A的加密工作,知道了加密密钥,我们也可以很简单的推导出解密密钥,这里就不过多讲解了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

附录(C程序代码,实现上述所说的加密变换):

//加法式古典密码加密密钥(各个数位自身加1,如果该数位本身是9,则变为0)
//该程序可直接复制到VC++6.0下运行,其它编译器有可能出现编译错误
//该程序仅支持任意长度的纯数字,我只是给大家解释一下加法密钥,所以用最简单的程序实现了
#include <stdio.h>
int invoking(int c);
int main(void)
#defineS3 "请输入明文,明文为任意长度的纯整数,请勿输入其它字符,完毕后回车得到密文:"
{
      int num;
      scanf("%d",&num);
      invoking(num);
      return 0;
}
int invoking(int c)
{
      int t=0,b;
      if(c==0)
                return 0;
      t=c%10;
      c/=10;
      invoking(c);
      if(t==9)
      {
                b=t-t;
                printf("%d",b);
      }
      else
                printf("%d",t+1);
}

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

秋雨叶 发表于 2013-6-8 13:01

沙发
意犹未尽,貌似这只是个概述吧,求楼主持续更新

十一年之那一年 发表于 2013-6-8 13:02

大概似乎可能有点懂

艹123 发表于 2013-6-8 13:10

很好的总结谢谢楼主

9886263 发表于 2013-6-8 13:16

太深奥了·~~~晕了

cxliuping 发表于 2013-6-8 13:24

小学没毕业。完全看不懂。
页: [1]
查看完整版本: 密码技术概述