第四章公钥密码:4.2公钥密码体制的基本概念 421公钥密码体制的原理 公钥体制的加密过程 ①密钥的产生:要求接收消息的端系统,产生一对用来加密和解密的密 钥PKB和SKB,如图中的接收者B,其中PKB是公开钥,SKB是秘密钥。因 此,公钥可以发布给其他人 ②公开钥的分发:B将加密密钥(PK)予以公开。另一密钥则被保密(SKg) ③加密:A要想向B发送消息m,则使用B的公开钥加密m,表示为 C=Epm其中c是密文,E是加密算法 ④解密:B收到密文c后,用自己的秘密钥SKB解密,即m=Dsc,其中 D是解密算法。因为只有B知道SKB,所以其他人都无法对c解密。 密码分析员 (窃听者) SK B 发送者A 加密算法 解密算法 接受者B PK SK 密钥源公钥体制加密的框图
4.2.1 公钥密码体制的原理 公钥体制的加密过程 ⚫ ① 密钥的产生:要求接收消息的端系统,产生一对用来加密和解密的密 钥PKB和SKB,如图中的接收者B,其中PKB是公开钥,SKB是秘密钥。因 此,公钥可以发布给其他人 ⚫ ② 公开钥的分发:B将加密密钥(PKB)予以公开。另一密钥则被保密(SKB) ⚫ ③ 加密:A要想向B发送消息m,则使用B的公开钥加密m,表示为 c=EPKB[m]其中c是密文,E是加密算法 ⚫ ④ 解密:B收到密文c后,用自己的秘密钥SKB解密,即m=DSKB[c],其中 D是解密算法。因为只有B知道SKB,所以其他人都无法对c解密。 12/ 第四章 公钥密码:4.2 公钥密码体制的基本概念 发送者A 加密算法 解密算法 接受者B m c m 密码分析员 (窃听者) 密钥源 PKB SKB m ˆ SKB ˆ 公钥体制加密的框图
第四章公钥密码:4.2公钥密码体制的基本概念 421公钥密码体制的原理 ●公钥体制的认证过程 公钥加密不仅能用于加、解密,还能用于对发方A发送的消息m提供认证 用户A用自己的秘密钥SK对m加密,表示为c=Esm 将c发往B。B用A的公开钥PK对c解密,表示为m=Dpll 因为从m得到c是经过A4的秘密钥SKA加密,只有A才能做到。因此c可当做 A对m的数字签字。 任何人只要得不到A的秘密钥SK就不能篡改m,所以以上过程获得了 对消息来源和消息完整性的认证,也实现了对身份的认证。 密码分析员 (窃听者) 发送者A-加密算法 解密算法 接受者B SK 密钥源 PK 公钥密码体制认证框图 历毛孑拌技大字 13/
4.2.1 公钥密码体制的原理 公钥体制的认证过程 ⚫ 公钥加密不仅能用于加、解密,还能用于对发方A发送的消息m提供认证 ⚫ 用户A用自己的秘密钥SKA对m加密,表示为c=ESKA[m] ⚫ 将c发往B。B用A的公开钥PKA对c解密,表示为m=DPKA[c] ⚫ 因为从m得到c是经过A的秘密钥SKA加密,只有A才能做到。因此c可当做 A对m的数字签字。 ⚫ 任何人只要得不到A的秘密钥SKA就不能篡改m,所以以上过程获得了 对消息来源和消息完整性的认证,也实现了对身份的认证。 13/ 第四章 公钥密码:4.2 公钥密码体制的基本概念 发送者A 加密算法 解密算法 接受者B m c m 密码分析员 (窃听者) 密钥源 PKA SKA SKA ˆ 公钥密码体制认证框图
第四章公钥密码:4.2公钥密码体制的基本概念 421公钥密码体制的原理 ●认证符: 通过单向压缩函数(hash)解决长文件的签字 公钥密码算法实质上是一种分组密码算法,但公钥密码算法运算 复杂、速度很慢,而且对明文的加密和签名的结果存在很大的数 据扩展,因此这对于长文件来说直接使用不可行 改进的方法是减小文件的数字签字的大小,即先将文件经过一个 函数压缩成长度较小的比特串,得到的比特串称为认证符,然后 对认证符进行处理 ≥认证符具有这样一个性质: 如果保持认证符的值不变而修改文件,在计算上是不可行的 ●签名过程中,往往用发送者的秘密钥对认证符加密,加密后的结果为 原文件的数字签字。(详见第7章 历忠毛孑技*字 14/
4.2.1 公钥密码体制的原理 认证符: ⚫ 通过单向压缩函数(hash)解决长文件的签字 ⚫ 公钥密码算法实质上是一种分组密码算法,但公钥密码算法运算 复杂、速度很慢,而且对明文的加密和签名的结果存在很大的数 据扩展,因此这对于长文件来说直接使用不可行 ⚫ 改进的方法是减小文件的数字签字的大小,即先将文件经过一个 函数压缩成长度较小的比特串,得到的比特串称为认证符,然后 对认证符进行处理 认证符具有这样一个性质: ⚫ 如果保持认证符的值不变而修改文件,在计算上是不可行的 签名过程中,往往用发送者的秘密钥对认证符加密,加密后的结果为 原文件的数字签字。(详见第7章) 14/ 第四章 公钥密码:4.2 公钥密码体制的基本概念
第四章公钥密码:4.2公钥密码体制的基本概念 421公钥密码体制的原理 ●公钥体制同时提供加密和认证的过程 为了同时提供认证功能和保密性,可使用双重加、解密 先签名后加密:发方首先用自己的秘密钥SKA对消息m加密,用于提供数字 签字。再用收方的公开钥PKB第2次加密,表示为c= epKBIesKAlmll 先解密再验证:收方的解密过程为H= DpKADsKBICll 先加密后签名是不安全的,别人可以先将签名去掉,再签上自己的签名, 从而实现了篡改,谎称是自己产生了该密文消息。 单纯的先签名再加密有时也不安全,收方解密出签名的消息后,再用其他 人公钥加密发给其他人,从而实现冒充签名者发送消息给其它任何人,因 此签字中还应该有收方的D 发送者A以加密算法加密算法斗解密算法解密算法-接受者B SK PKA密钥源 密钥源 浮码体制的认证,保密框图 15/
4.2.1 公钥密码体制的原理 公钥体制同时提供加密和认证的过程 ⚫ 为了同时提供认证功能和保密性,可使用双重加、解密 ⚫ 先签名后加密:发方首先用自己的秘密钥SKA对消息m加密,用于提供数字 签字。再用收方的公开钥PKB第2次加密,表示为c=EPKB[ESKA[m]] ⚫ 先解密再验证:收方的解密过程为m=DPKA[DSKB[c]] ⚫ 先加密后签名是不安全的,别人可以先将签名去掉,再签上自己的签名, 从而实现了篡改,谎称是自己产生了该密文消息。 ⚫ 单纯的先签名再加密有时也不安全,收方解密出签名的消息后,再用其他 人公钥加密发给其他人,从而实现冒充签名者发送消息给其它任何人,因 此签字中还应该有收方的ID 15/ 第四章 公钥密码:4.2 公钥密码体制的基本概念 发送者A 加密算法 解密算法 接受者B m c m 密钥源 PKA SKA 公钥密码体制的认证、保密框图 加密算法 解密算法 z z 密钥源 PKB SKB
第四章公钥密码:4.2公钥密码体制的基本概念 422公钥密码算法应满足的要求 ●公钥密码算法应满足以下要求 ①收方B产生密钥对(公开钥PKg和秘密钥SKg)在计算上是容易 的。由私钥及其他密码信息容易计算出公开密钥(P问题) ②发方A用收方的公开钥对消息m加密以产生密文c,即c= EpKBlm] 在计算上是容易的 ③收方B用自己的秘密钥对c解密,即m=DsKB在计算上是容易的 ④敌手由B的公开钥PKg求秘密钥SKg在计算上是不可行的 ⑤敌手由密文c和B的公开钥PK恢复明文m在计算上是不可行的 ⑥加、解密次序可换,即EpKB[Dskg(m]=DsK[EpkB(m) ●其中最后一条虽然非常有用,但不是对所有的算法都作要求。在构建 盲签字等算法时需要类似要求 以上要求的本质之处在于要求一个陷门单向函数。 历忠毛孑技*字 16/
4.2.2 公钥密码算法应满足的要求 公钥密码算法应满足以下要求 ⚫ ① 收方B产生密钥对(公开钥PKB和秘密钥SKB)在计算上是容易 的。由私钥及其他密码信息容易计算出公开密钥(P问题) ⚫ ② 发方A用收方的公开钥对消息m加密以产生密文c,即c=EPKB[m] 在计算上是容易的 ⚫ ③ 收方B用自己的秘密钥对c解密,即m=DSKB[c]在计算上是容易的 ⚫ ④ 敌手由B的公开钥PKB求秘密钥SKB在计算上是不可行的 ⚫ ⑤ 敌手由密文c和B的公开钥PKB恢复明文m在计算上是不可行的 ⚫ ⑥ 加、解密次序可换,即EPKB[DSKB(m)]=DSKB[EPKB (m)] 其中最后一条虽然非常有用,但不是对所有的算法都作要求。在构建 盲签字等算法时需要类似要求 以上要求的本质之处在于要求一个陷门单向函数。 16/ 第四章 公钥密码:4.2 公钥密码体制的基本概念