codecamp

密码学 密码乘积体制

简介

乘积密码就是以某种方式连续执行两个或多个密码,以使得所得到的最后结果或乘积从密码编码的角度比其任意一个组成密码都更强。

问题的提出:

在已掌握多种密码体制的条件下,如何设计安全强度更高的密码体制,以抵御这些密码体制的密码分析手段

一种提高密码体制加密强度的思路

先用一种密码体制对明文加密得到密文C',再用另一种密码体制 对C'加密得到最终的密文 香农称之为“乘积”组合密码体制

描述

假设S1和S2是两个密码体制,他们的明文控件和密文空间相同,设S1=(P,P,K1,E1,D1),S2=(P,P,K2,E2,D2),那么S1和S2的乘积密码体制S1*S2定义为?(P,P,K1*K2,E,D),密匙形式为(k1,k2) 加密 e(k1,k20)(x)=ek2(ek1(x)) 解密 d(k1,k2)(y)=dk1(ek2(y)) 容易证明 d(k1,k2)(e(k1,k2)(x))=x

幂等密码体制

如果将内嵌式密码体制s和自己做乘积,得到密码体制S*S,记做S^2,如果做n重乘积,记做S^n 如果S^2=S,则称密码体制是幂等的,幂等密码体制和自己做乘积,不能提高算法的安全性

  • 古典密码中的移位、代换、乘法、仿射、置换、维吉尼亚、希尔密码都是幂等的
密码学 哈夫曼编码
密码学 代换-置换网络
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

第六章 公钥密码学和离散对数

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }