? 有公鑰和秘鑰科展,之前的被稱為私鑰密碼學(xué),都是基于代換和置換這兩個基本工具。而公鑰密碼體制則為密碼學(xué)的發(fā)展提供了新的理論和技術(shù)基礎(chǔ)痹栖,一方面公鑰密碼算法的基本工具不再是代換和置換,而是數(shù)學(xué)函數(shù)瞭空;另一方面公鑰密碼算法是以非對稱的形式使用兩個密鑰揪阿,兩個密鑰的使用對保密性、密鑰分配咆畏、認(rèn)證等都有著深刻的意義南捂。公鑰密碼又稱為雙鑰密碼和非對稱密碼。
? 公鑰密碼體制的概念是在解決單鑰密碼體制中最難解決的兩個問題時提出的旧找,這兩個問題是密鑰分配和數(shù)字簽字溺健。
? 單鑰密碼體制在進行密鑰分配時, 要求通信雙方或者已經(jīng)有一個共享的密鑰,或者可籍助于一個密鑰分配中心钮蛛。對第一個要求鞭缭,常称噬牛可用人工方式傳送雙方最初共享的密鑰,這種方法成本很高岭辣,而且還完全依賴信使的可靠性吱晒。第二個要求則完全依賴于密鑰分配中心的可靠性。
? 第二個問題數(shù)字簽字考慮的是如何為數(shù)字化的消息或文件提供一種類似于為書面文件手書簽字的方法沦童。
? 公鑰密碼算法的最大特點是采用兩個相關(guān)密鑰將加密和解密能力分開仑濒,其中一個密鑰是公開的,稱為公開密鑰偷遗,簡稱公開鑰躏精,用于加密;另一個密鑰是為用戶專用鹦肿,因而是保密的矗烛,稱為秘密密鑰,簡稱秘密鑰箩溃,用于解密瞭吃。因此公鑰密碼體制也稱為雙鑰密碼體制。算法有以下重要特性: 已知密碼算法和加密密鑰涣旨,求解密密鑰在計算上是不可行的歪架。
加密過程有以下幾步:
① 要求接收消息的端系統(tǒng),產(chǎn)生一對用來加密和解密的密鑰霹陡,如圖中的接收者B和蚪,產(chǎn)生一對密鑰PKB,SKB烹棉,其中PKB是公開鑰攒霹,SKB是秘密鑰。
② 端系統(tǒng)B將加密密鑰(如圖中的PKB)予以公開浆洗。另一密鑰則被保密(圖中的SKB)催束。
③ A要想向B發(fā)送消息m,則使用B的公開鑰加密m伏社,表示為c=EPKB[m],其中c是密文抠刺,E是加密算法。
④ B收到密文c后摘昌,用自己的秘密鑰SKB解密速妖,表示為m=DSKB[c],其中D是解密算法聪黎。
對于公鑰秘鑰罕容,我們需要構(gòu)造如下函數(shù)
單向陷門函數(shù)是滿足下列條件的函數(shù)f:
(1)? ? 給定x,計算y=f(x)是容易的;
(2)? ? 給定y,? 計算x使x=f(y)是困難的杀赢。
(3)? ? 存在δ烘跺,已知δ 時,對給定的任何y,若相應(yīng)的x存在脂崔,則計算x使x=f(y)是容易的滤淳。
它有以下特點:
1.僅滿足(1),(2)兩條的稱為單向函數(shù),第(3)條稱為陷門性砌左,δ稱為陷門信息
2.當(dāng)用陷門函數(shù)函數(shù)f作為加密函數(shù)時脖咐,可將f公開,這相當(dāng)于公開加密密碼汇歹,此時加密密鑰便稱為公開鑰屁擅,記為Pk,f函數(shù)的設(shè)計者將δ保密产弹,用作解密密鑰派歌,此時δ稱為秘密鑰匙記為Sk,由于加密函數(shù)時公開的痰哨,任何人都可以將信息x加密成y=f(x)胶果,然后送給函數(shù)的設(shè)計者(當(dāng)然可以通過不安全信道傳送);由于設(shè)計者擁有Sk斤斧,他自然可以解出x=f(y)逆
模運算:a=qn+r, 0<=r<n早抠,n是正整數(shù),a是整數(shù)撬讽,a/n 的商為q蕊连,余數(shù)為r
如果(a mod n)=(b mod n),則稱兩整數(shù)a和b模n同余游昼,記為a≡b mod n
模8運算:設(shè)Z8={0,1,…,7}甘苍,考慮Z8上的模加法和模乘法