密碼學中,密码体制()是一套密碼學算法,用以提供某種安全性,如機密性(對應算法稱為加密)。
典型的密碼體制有三部分:密钥生成、加密、解密。而「密碼」(或)一詞,有時則僅指加密與解密這對算法。相比之下,密碼體制則包含密钥生成算法,所以有時用作強調其重要性。故「密碼體制」常用於討論公鑰技巧,而「密碼」和「密碼體制」皆會用於討論對稱密鑰加密技巧。
嚴格定義
密码学中,密码体制是满足以下条件的五元组 (\mathcal{P},\mathcal{C},\mathcal{K},\mathcal{E},\mathcal{D}):
\mathcal{P}表示所有可能的明文的有限集,稱為明文空間。
\mathcal{C}表示所有可能的密文的有限集,稱為密文空間。
\mathcal{K}表示所有可能的密钥的有限集,即密钥空间。
对任意k \in \mathcal K,均存在一个确定的加密規则E_k,是\mathcal{P} \rightarrow \mathcal{C}的函數。\mathcal E是該些加密函數組成的集合。
同樣对任意k \in \mathcal K,均存在確定的解密規則 D_k,是\mathcal{C} \rightarrow \mathcal{P}的函數。\mathcal D為該些解密函數的集合。
最後,對每個公鑰e \in \mathcal{K},存在私鑰d \in \mathcal{K}使得D_d(E_e(p)) = p對全部p \in \mathcal{P}成立。
以上定義中,並未分辨加密法是對稱密鑰加密還是公开密钥加密。若僅考慮加密與解密鑰相等的情況,則末三個條件可改寫為:
: 对任意k \in \mathcal K,均存在一个确定的加密法则,E_k \in \mathcal E和对应解密法则D_k \in \mathcal D;并对每一组E_k: \mathcal P \to \mathcal C和D_k: \mathcal C \to \mathcal P,都对任意明文p \in \mathcal P有D_k(E_k (p))=p。
末一項保证了使用加密方式对明文进行加密後,也可用相应的解密方式对密文进行解密,得到原本的明文。該條件推出,加密方式必须是一个单射函数,即不同明文加密后不可对应相同密文。如果密文空间和明文空间一样,那么这个加密方式就是一个置换。
例
古典例子有凱撒密碼,其加密方式是字母表的一個置換。現代例子則有RSA密码体制。
参考
评论 (0)