1、公钥密码学理论的形成,-从科学假说到科学理论,公元前5世纪,古希腊斯巴达出现原始的密码器:最早的换位密码术。 公元前1世纪,著名的恺撒(Caesar)密码被用于高卢战争中:简单易行的单字母替代密码。二次世界大战中,印第安纳瓦霍土著语言被美军用作密码。这是密码学和语言学的成功结合,纳瓦霍语密码成为历史上从未被破译的密码。,1949年以前密码学是一种技巧(Art) 1949-1975标志:1949年Shannon发表的保密系统的信息理论,密码学成为科学 1976以后标志:1976年Diffie和Hellman发表了密码学新方向。代表了密码学的新方向:公钥密码学,密码编码学(Cryptography
2、) 明文(plaintext):原始的消息 密文(ciphertext):被伪装的消息 加密(encrypt/encipher):明文转换为密文的过程 解密(decrypt/decipher):密文还原为明文的过程 算法(algorithm/cipher):用于加密和解密的数学函数 密钥(key):加密密钥、解密密钥,公钥密码学理论的形成,科学问题的提出:密钥的安全分发 科学事实的获取:密钥分发过程中存在的安全问题 科学假说的形成:对称密钥下的密钥分发机制KDC,复杂加密法,非对称 密钥算法(DH密钥交换方法) 科学理论的创立:DH密钥交换方法、RSA加密算法、其他公钥加密算法,古典密码 现代
3、密码学: 流密码分组密码 密码学新方向:公钥密码学 用于加密 用于密钥交换 用于数字签名,Caesar密码,破译以下密文: 密文:PHHW PH DIWHO WKH SDUWB 明文:meet me after the party,字母表:(密码本) 密文:D E F G H I J K L M N O P Q R S T UVWX Y ZABC 明文:a b c d e f g h i j k l m n o p q r s t u v w x y z i : 0 1 2 3 4 5 6 7 8 9,设密钥为K: 加密算法:C=E(K,P)=(P+k)mod(26) 解密算法:P=D(K,C
4、)=(C-K)mod(26) 25个可能的密钥k, k1,25,英文中字母的使用频率,攻破古典密码的有效方法: 字母频率统计分析,古典密码 弱点:密钥空间较小安全性基于算法细节不抗频率分析 密钥分发:手工分发,Kerchoffs原则(1883):加密算法应建立在算法的公开不影响明文和密钥的安全的基础上。,古典密码 现代密码学: 流密码分组密码 密码学新方向:公钥密码学 用于加密 用于密钥交换 用于数字签名,对称密码算法分类,流密码 (stream cipher)每次加密数据流的一位或一字节,连续加密。 Ci=KiPi分组密码 (block cipher)加密算法的主要工作混淆和扩散特点:对明文
5、分组进行加密,密钥长度56bits以上例:DES算法、AES算法、三重DES算法,对称加密的密钥分配,破解算法的可能性大大降低,但是密钥分发成为主要问题 在对称加密系统中,通常要求通信的双方Alice和Bob共享密钥。 实现的方式: Alice确定一个密钥,并亲自交给Bob 一个可信的第三方(Trudy)负责确定密钥,并亲自交个Alice和Bob。 Alice和Bob之前已经建立了秘密通道,则Alice使用该秘密通道将新密钥发送给Bob。 Trudy和Alice以及Bob间有秘密通道,则Trudy利用秘密通道将密钥发送给Alice和Bob。,密钥分发过程中的安全问题:,截断 监听篡改 伪装,安
6、全攻击,古典密码 现代密码学: 流密码分组密码 密码学新方向:公钥密码学 用于加密 用于密钥交换 用于数字签名,公钥密码学,公钥密码体制的建立 经典公钥加密算法-RSA算法 数字签名和认证协议(保证通信双方的真实性、公钥的真实性),1976年,迪菲(Diffie)和赫尔曼(Hellman)两人(论文“New Direction in Cryptography”),把密钥分为加密的公钥和解密的私钥,这是密码学的一场革命。 1977年,美国的里维斯特(Ronald Rivest)、沙米尔(Adi Shamir)和阿德尔曼(Len Adleman),提出第一个较完善的公钥密码体制RSA体制,密码学革
7、命的代表人物:Diffie(1944-)1965年,获得麻省理工学院数学学士学位 1976年,和Hellman联合发表密码学新方向 1991年,任职于Sun公司 1992年,1992年瑞士联邦理工学院授予博士头衔。,Diffie考虑的问题:加密过程中密钥分发问题 手工分发不符合实际情况,而KDC的存在意味着通信双方的隐私会被第三方监视。 “数字签名”问题: 寻找一个正确判断消息来源的方法,即象手写签名一样,以保证消息却是出自特定的人。,Alice把消息放到箱子里,用自己的锁锁上发送给Bob Bob收到箱子后加上自己的锁,在把箱子返回给Alice Alice除掉自己的锁,再把箱子寄给Bob Bo
8、b除掉自己的锁,读取消息,复杂加密法,复杂加密法,Alice把消息放到箱子里,用自己的锁锁上发送给Bob Bob收到箱子后加上自己的锁,在把箱子返回给Alice Alice除掉自己的锁,再把箱子寄给Bob Bob除掉自己的锁,读取消息,复杂加密法,Alice把消息放到箱子里,用自己的锁锁上发送给Bob Bob收到箱子后加上自己的锁,在把箱子返回给Alice Alice除掉自己的锁,再把箱子寄给Bob Bob除掉自己的锁,读取消息,复杂加密法,Alice把消息放到箱子里,用自己的锁锁上发送给Bob Bob收到箱子后加上自己的锁,在把箱子返回给Alice Alice除掉自己的锁,再把箱子寄给Bob
9、 Bob除掉自己的锁,读取消息,一种新型算法:不对称密钥(公钥密码)加密步骤: 每一用户产生一对密钥,用来加密和解密信息 每一用户将其中一个密钥存于公开的寄存器或其他可访问的文件中,该密钥称为公钥,另一密钥是私有的。每一用户可以拥有若干其他用户的公钥。 若BOB要发消息给ALICE,则BOB用ALICE的公钥对信息加密。 ALICE收到消息后,用其私钥对消息解密。由于只有ALICE知道其自身的私钥,所以其他的接收者均不能解密出消息。 利用这种方法,通信各方均可访问公钥,而私钥是各通信方在本地产生的,所以不必进行分配。只要用户的私钥受到保护,保持秘密性,那么通信就是安全的。 关键:合适的单向陷门
10、函数,现实生活中的例子 单向路:只允许沿着一个方向走(加密),但你不能沿着反方向走(解密)。 电话号码本:很容易根据人名找到电话号码(加密),但是根据号码找对应的人很难(解密)。,单向函数: 函数值计算很容易 逆计算是不可行的。 单向陷门函数: 函数值计算很容易 若知道某种附加的信息,则逆计算是可行的,否则不可行。,问题在于:理论上可行,但是现实中找不到这样一个合适的能够使不对称密码成为可能的函数。 公开这一思想以寻找合适的函数。 RSA三人组:里维斯特(计算机学家)、沙摩尔(计算机学家)和阿德尔曼(数学家),公钥密码学的八卦:据说公钥密码学是他们创立的,公钥密码学据说是他们最早发明的,马尔科
11、姆威廉姆生1975年和前者合作发现了DH密钥交换方法,克利福德.科克思 1973年发现了RSA 算法,詹姆斯.埃利斯 1969年提出公钥 算法模型,数字签名 数字签名具有认证的功能 算法:DSS、DSA认证协议 相互认证 单向认证,其它公钥加密算法椭圆曲线密码学针对公钥密码体系的攻击方法 穷举 从给定的公钥计算出私钥 穷举消息攻击,公钥密码学理论的形成,科学问题的提出:密钥的安全分发 科学事实的获取:密钥分发过程中存在的安全问题 科学假说的形成:对称密钥下的密钥分发机制KDC,复杂加密法,非对称 密钥算法(DH密钥交换方法) 科学理论的创立:DH密钥交换方法、RSA加密算法、其他公钥加密算法,谢谢!,