这一节课讲的是非对称加密,首先这一节课里面很多内容,老师都直接跳过了,他说目前来说有点难,在第六周的时候会重新讲一下。因此暂时略过即可。
非对称加密和对称加密的最大区别就是,两侧的key或者密码不一样。There are 2 types of key schemes。
首先回忆一下DES加密算法,2的56次方,因此很容易暴力破解,当时美帝的阴谋。到了1977年,Whitfield Diffie and Martin Hellman 这两个大神就写论文批判了这个算法,非常的有缺陷,容易造成巨大的损失。于是他俩发明了DH密钥交换方案(据说1970年Williamson就已经搞出来了,但是由于保密没有公布)
Diffie-Hellman Key Exchange
注意该框架是用来交换密钥的,不是交换加密信息的,当然也不能被用于交换任何信息。该框架可以把公钥大大方方的发布出来,随意监听。
value of key depends on the participants (and their private and public key information)
based on exponentiation 求幂 in a finite field 有限域 (modulo a prime or a polynomial) - easy
security relies on the difficulty of computing discrete logarithms 离散对数 (similar to factoring) –hard
上面几个数学词汇我都不太懂, 需要去学习一下。
下面开始搞一个例子,
首先Alice和Bob要交换密钥,那么首先要达成共识,需要一个整数q和一个根a。那么他们选择了q是353,a是3
然后接下来,他们各自选择一个各自的秘密Key,而且key得小于q,然后通过公式计算public key。那么Alice选择了97 Bob选择了233。
然后计算公钥,
Alice的 3的97次方 然后mod353 =40
Bob的公钥是3的233次方然后mod353 = 248,两者交换公钥
下一步是计算共享会话key,
Alice的是248的97次方 mod 353 = 160
Bob的是 40的233次方mod 353 = 160
下面的例子也不错
每一次沟通都可以更换private 和public key,然后shared session key 也是跟着不断变化的。要注意的是,交换key时候是需要验证的,不然别人就知道你的公钥 共享会话key,然后暴力破解私钥
这个方法的最大缺点就是怕man in middle 攻击,即有第三个人在两个人中间截获public key并且分别交换信息,结果本来是两个人communicate,现在变成了两个人和第三个人communicate,第三个人把两方的信息都截获了。
下面这些加密方法都在第六周讲,目前搁置。
ElGamal Cryptography
Elliptic Curve Cryptography
Real Elliptic Curves
ECC Security
RSA Algrorithm
所以到这里可以简单总结一下,
非对称加密需要私钥和公钥
Two-key cryptography
Public / Private key cryptography
Public Key Infrastructure (PKI)
Requirements
○ Public Key
○ Private Key
○ Certificate Authority (Trusted Third Party)
只知道public key来计算private key是不可能的。
后面大概讲了PKI这么个系统的优劣情况等等
Public-Key Requirements
Public-Key algorithms rely on two keys where:
it is computationally infeasible to find decryption key knowing only algorithm & encryption key
it is computationally easy to en/decrypt messages when the relevant (en/decrypt) key is known
either of the two related keys can be used for encryption, with the other used for decryption (for some algorithms)
these are formidable requirements which only a few algorithms have satisfied
这节课的实验部分就是教你如何使用Cryptool 2软件。没啥可说的。