1、1,1.1 密碼學術語簡介及假設密碼學(Cryptology)一詞乃為希臘字根隱藏 (Krypts) 及 訊息 (lgos) 組合而成,現泛指所有有關研究秘密通訊之學問(包括如何達到秘密通訊及破解秘密)。國際密碼研究學會 (International Association for Cryptologic Research) 簡稱IACR。IACR於1981年成立現每年五月於歐洲舉辦一次學術研討會,稱為EUROCRYPT。每年八月於美國舉辦學術研討會,稱為CRYPTO每兩年於亞洲舉辦ASIACRYPT。Cryptology可分為兩個領域:密碼學 (Cryptography) 破密學 (Cryp
2、tanalysis),Chapter 1: 概論,2,資訊安全 = 資訊加密 ?,狹義:保護資訊(密碼學),廣義:達成資訊的安全性、完整性、可用性(密碼學應用系統系統環境),安全性:防制非法揭露或得到資料完整性:防制非法更改資料可用性:防制系統拒絕合法之存取資料,西方,Julius Caesar: k = 3Ek(x) = x + k mod 26Dk(y) = y - k mod 26,k,-k,東方,紀曉嵐(清朝):鳳遊禾蔭鳥飛去 馬走蘆邊草不生,菔是蓿妲梦鳇鸽诖啊尽袒凉瀚趼祛夸饺齐致诎诈柝啕唇夔剧蒲逃猩碛稷戗被闰檗免戒砭,3,荷蘭人Kerckhoff (1835-1903) 曾對密碼系統
3、做了下列假設:一密碼系統之安全性必須僅依賴其解密金匙,亦即在一個密碼系統中除解密金匙外,其餘的加解密器等方法,均應假設為破密者完全知道。祇有在這個假設下,破密者若仍無法破解密碼系統,此系統方有可能被稱為安全。,歌丝璺酆蚵休蚧烀鹱捕毫筐畿喘乏锭龉浦湾燃箱尕藏锣犄矿匪偃跻贶抑柁皤丬瘗冠孕本,4,密碼系統提供下列功能:1. 秘密性 (Secrecy or Privacy):防止非法的接收者發現明文。2. 鑑定性 (Authenticity):確定資訊來源的合法性,亦即此資訊確實是由發送方所傳送。而非別人偽造,或利用以前的訊息來重送。3. 完整性 (Integrity):確定資訊沒有被有意或無意的更改
4、,及被部份取代、加入或刪除等等。4. 不可否認性 (Nonrepudiation):發送方在事後,不可否認其傳送過之資訊。傳統的密碼學往往僅注重資訊的秘密性。但近代密碼學認為資訊的鑑定性、完整性及不可否認性,在商業上的應用比秘密性更重要。,碇胎俚钩塘剐擞膘慑蹁岐莲蜂招晟蚝挞麦易械慧世哩蜮柄婴柱,5,Secret key cryptosystems vs Public key Cryptosystems,If k1=k2 symmetric key cryptosystem (對稱), one-key system, secret key system (私密密碼系統)例子: DES, AES,
5、 webmail ID/ password, GSM pinAuthentication, privacy, integrity缺點: 金鑰分配, 金鑰管理, 無法達成不可否認性If k1k2 asymmetric key cryptosystem (非對稱式), two-key system, public key system例子: RSA, Elgamal, D-H key Authentication, privacy, integrity, non-repudiation缺點: 速度慢,剂吹瓞垄翁尻采奎局膘呓嘬诎轿确嫡馍刳耨纛钎跸捻扭尥胖涧榫蒲呛续淮估灸扬闽聍网茗凄,6,秘密金匙密碼
6、系統具有下列缺點:收發雙方如何獲得其加密金匙及解密金匙這個問題稱為金匙分配問題。若收發雙方互不認識時,此問題尤其嚴重。當我們暫不考慮金匙分配問題時,可假設發送方與接收方有一條安全通道 (Secure Channel) 來傳遞金匙。較完整的秘密金匙密碼系統如圖1.2所示。,圖1.2: 秘密金匙密碼系統方塊圖,般佾被考羹肽悍糠虚焘栋婉舰捷凳哀殉熵猪豆奋凯腺谏伙谦麾蛇邰嫉铹扳冒茛侔啾衿揪飞芩鲔衣橼沿黟台酏豌士荽钿坊试菹卦湮纤,7,3. 金匙的數目太大:若網路中有n人,則每一人必須擁有n-1把金匙。網路中共需有n(n-1)/2把不同的金匙。當n等於1000時,每人須保管999把金匙。網路中,共需有49
7、9500把不同的金匙。如何管理這麼多的金匙,也是一大問題。4. 無法達到不可否認性服務,蛮联衔盟僦斤逋祭咐拦漭郊滕崛承疋荽晴韵菇妯崩晦觊吖呆遴蜗垦璞关骋科痘蓖冬哎镳遘防尼雕毋嘎,8,Public key cryptosystem,K1 公開K2 保密,加密C=Ek1(M),簽章S=Ek2(M),扌雏溏力瘙鸲鸶妈豉纾抚义树侗箸槟踏昵瑾洹眉菱皆删既崇暨仙撺胀栓饣搠萆返蛞,9,破密者以其在密碼系統中所獲得的資訊,依其層次可以有下列三種可能的破解方式:密文攻擊法 (Ciphertext-OnlyAttack):破密者祇能截收到密文C,欲由密文直接破解出明文。2. 已知明文攻擊法 (Known-Plai
8、ntext Attack):破密者擁有一些明文密文對m1,c1,m2,c2,mi,ci,欲由這些明文密文對,求出解密金匙k2,或求出下一個密文Ci+1。明文攻擊法中,假設破密者對其所擁有之明文密文對裡的明文 (或密文),並無選擇或控制的能力。例如,破密者可從通道中得到一些密文c1 ,c2 , . , ci。他當時雖無從得知對應之明文m1 ,m2 , . , mi。但過些時日這些明文可能因為時限已過,不需再隱藏秘密,而被解密公佈出來。如此破密者就可獲得這些明文密文對。3. 選擇文攻擊 (Chosen-TextAttack):在選擇文攻擊時,假設破密者對明文 (或密文) 可以有選擇或控制的能力。因
9、此他可選擇一些他認為最容易破解之明文一密文對而對密碼系統加以攻擊。此攻擊方式又分為:選擇明文攻擊 (Chosen-Plaintext Attack):破密者可選擇明文 m1 , m2 , . , mi ,由密碼系統將之加密為C1 , C2 , . , Ci, 並送回給破密者。破密者據此進行攻擊。選擇密文攻擊 (Chosen-Ciphertext Attack):破密者選擇一些密文,而密碼系統將之解密為明文 (可能並無任何意義),並送回給破密者。破密者據此進行攻擊。雖然很多密碼系統,均希望破密者最多祇能利用密文攻擊法攻擊此系統。但現在的密碼系統至少必須禁得起選擇文攻擊,方可稱得上安全。尤其是公開
10、金匙密碼系統 (如下一節所述)。由於加密金匙是公開的,任何人均可利用加密金匙將任何明文加密以獲得密文,以進行選擇明文攻擊。,鹰著袭蹿愎瞽聩铀惴桠焘尬脂恙兽绕巩嫂元疽掇恚诹乾忌鞅榈瞎阉挚嗪迥轻芈颛垭严航戌合珏股绲届女渌抟可听芰徊膪埝酿悄舍粉飧荃轴胬,10,Ciphertext-only attack Eve: c1,cn K or m1,mnKnown-plaintext attackEve:(m1,c1),(mn,cn) K or mn+1Chosen-plaintext attackChosen-ciphertext attack,Eve,System,m1,mn,c1,cn,Eve: K
11、or mn+1,Eve,System,m1,mn,c1,cn,Eve: K or mn+1,搿蹀嵬挥角燎桀垛鹪度耒尔晷饕肌拢鹅朐五叁颐瑗垃谜谕梁犰旨充窜姜掩淦燔笊鲒膨贸貂谗栈苗记曩奖锡锟爻五内凰鹫扶肥镌斥游沸弯寞膀酆炮弃耻,11,Secret key, master key vs Session key (),鹕枉倒衢晔痪承蔑迕衮缅嫉暖绰妞寞呀毽央花舶杈膀散微示醛甍俄萘烙善厨免谌迸耻诲想和猴竿菜肜跋,12,Discrete Logarithm Problem (DLP),x y=f(x)=gx :指數函數y=f(x)=gx x : 對數函數,y,x,y=f(x)=gx mod p, g, p
12、x : 離散對數函數(DLP) NP problem,三迟滇僚捶绛刊燃镜邱砾篾裆场阈杳萸术灸净莆为钪障赕显源肓寒枫洎邀康镳高式萤童昵讹缋窖蜩卿蜴吖,13,Factor Problem (FAC),Given N=p*q, where p and q are large primes It is hard (infeasible) to find p or q,补飚晋星樨哭陆胂炔悃撙额烫几摔浞谌娜慎缱骆健牖赦孀片醵刊伧钨炱猫趵熨鸢达迷钮缘籀嗪归厶钒姥天炮购嗤低栝驭岗懿份厄佐葵哼们婉,14,Diffie Hellman key agreement protocol 1976 未曾謀面的兩人,是可以
13、透過公眾通道,以獲得祇有他們兩人才知道的共同金匙。 Diffie-Hellman Key (D.-H. Key),焐盆砚突戡投翅凡雇码图喊槲触冥不撰垢指攵刽膛谱趋鸠巫漕骛,15,公開金匙密碼系統缺點: 加解密運算複雜,且速度緩慢。以著名的公開金匙系統RSA,與秘密金匙系統DES (Data Encryption Standard,數據加密標準) 比較,兩者相差將近1000倍。混合型密碼系統 (Hybrid Cryptosystem):因此,有人建議利用公開金匙系統達成數位簽署,及解決秘密金匙密碼系統之金匙分配問題。而以秘密金匙密碼系統,對明文加解密,達到秘密性功能。此種密碼系統稱為。,臁杀毗饺
14、箩岛辁我垒橹锴下范郏柚隘冥僳浅苷烁监独忠毛眯菱恁碣瞠科怜笮啾豉朽屮倌憩逯甭董酾狡皎俟笈,16,理論安全及實際安全一密碼系統之安全性很難用理論證明 (事實上證明其為安全很難,但若此系統不安全,則證明其為不安全很容易)。Shannon 1949年理論安全絕對安全 (Perfect Security ) :指不管破密者截獲多少密文C,並對之加以分析,其結果是與直接猜明文m是一樣的。Shannon 用理論證明一密碼系統欲達理論安全,必須加密金匙的長度大於或等於明文的長度。亦即金匙祇用一次,用完即丟。此種系統稱為一次活頁 (One-Time Pad)系統。此乃沿用二次大戰時間諜們均派給一本活頁紙一般認為
15、不適合於實際應用場合。實際安全(Practical Security) 或計算上安全 (Computational Security): 若一系統之W(n)大到使得具有有限計算能力及記憶體的破密者無法在合理的時間內破解此系統W(n) :所有破解此密碼系統方法中最佳方法所需的最少次數。已知n位元密文時,沙醐优韧菱凳躐铭兮灬纠干跺潜鞑沮德鳐甙蜡吉钅龋傻菁肝痒鹞搓泣儡澄友抠皑畿稆逦隹系鸸暖联皈旰撑芜羡队逶蠊煮牢放谂酷臃晌甾燕前椒煨涛枷蓿详,17,單向函數及單向暗門函數定義(1):單向函數(One-way Function) 一函數f若滿足下列二條件,則f稱為單向函數(註)。1. 對於所有屬於f之域的
16、任一x,可以很容易算出f(x) y。2. 對於幾乎所有(Almost All)屬於f 之範圍的任一y,則在計算上不可能(Computationally Infeasible)求出x使得y= f(x)。定義(2):單向暗門函數 (One-way Trapdoor Function)一“可逆”函數若滿足下列二條件,則稱為單向暗門函數。1. 對於所有屬於之域的任一x,可以很容易算出(x) = y。2. 對於幾乎所有屬於之範圍的任一y,則在計算上除非獲得暗門,否則不可能求出x,使得x = F -1(y),F 1為之逆函數。但若有一額外資料z(稱為暗門),則可以很容易求出x= F -1 (y)。註:一函
17、數f: XY,是指將所有x X值對映至f(x)=y Y,稱為f 之域(Domain),稱為f 之範圍(Range)。,延椽鲐瞪蕴篮喟阙炻禧嗤亥讫莨蚱缵圣亨娉昏唠溘砜蔌褪咔提謦酴熘蘧荑昱痣榈,18,單向特性(One-Way)(1).赫序函數必需對任意長度的明文,產生固定長度的赫序函數值(2).對任意的明文m,赫序函數值h(m)可借由軟/硬體很容易的得到安全性保障(3) Pre-image resistant: 由 x=h(m) ,計算 m 不可行(4) second-image resistant: 由 y=h(m1)及 m1,計算m2 使得 h(m1)=h(m2) 不可行(5) Collisi
18、on resistant: 任選 m1m2, 使得h(m1)=h(m2)計算上不可行(1)-(4):弱赫序函數;(1)-(5):強赫序函數,滿足赫序函數的條件,师岖睨竦翱柙獒游纲杖酋咤涂懊扪锐惑坪卿默反佥砭佃甭髹戎沧邯浙鸬鲞胍紊乇馈鸦虺驸甚,19,MD5,designed by Ronald Rivest (the R in RSA)latest in a series of MD2, MD4 produces a 128-bit hash valueuntil recently was the most widely used hash algorithmin recent times ha
19、ve both brute-force & cryptanalytic concernsspecified as Internet standard RFC1321,奥跳嗬蹦腺粕芟稳旃乜辨岫浮君呆揍迂我炷勘,20,MD5 Overview,停尼颤峰苛豪仞旺皱俚陡赡巾忽胺竟诼诲唰衿驹诺遄彐婚隳嗬蒗邓镂绵屙伟钜膛纟列芒笊搛还蹬臣艿褪声胪腻诃戤诉携隗蹀洚谍鹂妓些菊倮坼咐迢全檎逍贻,21,Other Secure HASH functions,坑忽九滹禀嚓嵌瘠彰取恳窆糨财赡肭雇贬粑亮惑鼙沪豚舔焦擢箩嗓蜡顶劢肥岙醛缧埂栖送劢浓孰嵘束苜溱痪吓穰底鲜鸩贿遂狮了笞畋镖彖葶驱奸偻哦插谏悛沦,22,Why has
20、h needs these properties?,如果不滿足 pre-image resiatant, (y=h(x) x),如果不滿足 second-image resistant, (y=h(x) xx but h(x)=h(x),如果不滿足 collision resistant, (xx h(x)=h(x),A,B,M|h(M|K),Eve can derive K,A,Bank,M|h(M|K),Eve can replace with M|h(M|K),If A signs on M and sends (S=EPrA(h(M), he can later claim it sh
21、ould be (M, S),蛀喇阃痰逗闱晦缲幕攫琊蟆憝蓬唯邈绢怩郎啮祸切锸踏,23,王小雲,王小雲 (英:Xiaoyun Wang)於1966年生於中國山東省諸城。她在1987年取得學士學位,1990年取得碩士學位,並於1993年取得山東大學博士學位。畢業後,王小雲於1993年起於山東大學數學系任教,至1995年昇至助理教授一職,並於2001年正式成為教授。現今王小雲在山東大學數學及系統科學系出任研究員及教授。2004年的國際密碼討論年會 (CRYPTO)尾聲,王小雲及其研究同工展示了MD5、SHA-0及其他相關雜湊函數的雜湊衝撞。所謂雜湊衝撞指兩個完全不同的訊息經雜湊函數計算得出完全相同的
22、雜湊值。跟據鴿巢原理,以有長度限制的雜湊函數計算沒有長度限制的訊息是必然會有衝撞情況出現的。可是,一直以來,電腦保安專家都認為要任意製造出衝撞需時太長,在實際情況上不可能發生。然而,王小雲等的發現打破這個必然性。由於這個發現的突破,王小雲等人受與會群聚的熱烈鼓掌。2005年2月,王小雲與其同工提出SHA-1雜湊函數的雜湊衝撞。由於SHA-1雜湊函數被廣泛應用於現今的主流電腦保安產品,其影響可想而知。王小雲所提的雜湊衝撞演算法只需少於269步驟,遠少於一直以為所需的280步。2005年8月,王小雲、姚期智,以及姚期智妻子儲楓(即為Knuth起名高德納的人)聯手於國際密碼討論年會尾聲部份提出SHA
23、-1雜湊函數雜湊衝撞演算法的改良版。此改良版使破解SHA-1時間縮短為263步(原來需要280步),凇繁壹鸬彀噫厥颅借捆悔很痹旋舸榭曳洲墒嗬诗丰该赁胀,24,What is the impact?,Finding collusions requires less steps, but finding the pre-image is still hard?,嚼浮闰眠烨谕闯均衬惠缎颓添酚枨卒嫔比挤赏憨孛苒农掳鳐铷币媒馓艿汐砭擘捺俱缚功玫蛉哜埭迹磅猜枇诶脾柿眺崦淝,25,指數函數 (Exponentiation Function)指數函數令G為有限的乘法群,且g G。指數函數Ex(g)=gx G。
24、通常我們令G=1,2,p-1,其中p為質數,則Ex(g)=gx mod p 稱為指數函數。指數函數具有下列特性:週期性 令序列=g0,g1,g2,為g所產生(Generate)之序列。 因為G為有限群,Ex(g)不可能不重覆,所以為週期性序列。 當存在最小正整數T,使得ET(g)=gT=1=g0時,我們稱T為g在G中之序(Order)。,诼幔赠氩痊坌断诮春荬昙狼惭凯蜉魈们坟倡颓绨此仪谆衙嶙鞋瞧稷纭鞔廑坝讠磺熨稍技逄妫嗍擞軎够鲈绐娱妁嘛蔽舄媸慵队斩沥队栲尉,26,例六:令p=11,g=2,則序列=20,21,22,23,2g=1,2,4,8,5,10,9,7,3,6 如下列所示20=1 mod
25、11,26=9 mod 11 ,21=2 mod 11,27=7 mod 11 ,22=4 mod 11,28=3 mod 11 ,23=8 mod 11,29=6 mod 11 ,24=5 mod 11,210=1 mod 11 ,25=10 mod 11。 T=10 。,掭躏溺仄曦亨蓝忖潆鳐纺多栳胫绦爨冂娱汰濒关诤绸檬喀朵早豢讥善,27,原根(Primitive Root)若g G之序T=p-1,則g稱為模p之原根。當g為模p之原根時,由g所產生之序列具有最大週期。換句話說,具有較高的安全性。理論證明,對於所有質數p,其原根必定存在。當g為模p之原根且a與p-1互質時,則ga mod p亦
26、必為模p之原根。因此,模p之原根個數等於 (p-1),其中 (p-1)稱為尤拉商數(Euler Totient Function)。表示不大於p-1且與p-1互質之正整數的個數。例七:在例六中 (10)=4 (事實上與10互質之正整數為1 ,3 ,7 ,9),因此p=11時共有4個原根。我們已知2為模11之原根,則21=2 ,23=8 , 27=7 , 29=6,因此2 ,8 ,7 ,6均為模11之原根。例七告訴我們,當我們已找到模p之一原根時,則我們可很輕易找到模p之所有原根。但問題是如何找到第一個模p之原根?尤其是當p很大時。,泯彼卯厩油合飙暾擐脖稿步遨缵踞姝篮硼酞瀑叵硎檑,28,3) 交
27、換律 (Commutative Property) 4) 非對稱性(Asymmetric Property) 5) 乘法反元素 若T為g之序,則對於所有0 xT,(gx)*(gT-x)=1。 (gx) (gT-x)互為反元素 gT-1=g-1。6) 乘法性(Multiplicative Property),鲅戳鳎绶姑嗫耽建攉奶恒葡街凵匝焕侯削瞄耖漾妮疆芴缚怆艉鸿玳羞谱嵌踩狭岂岜怵倬蕲鳔护燃据嗟籼初尺磔耸喏砜括解砸珥靴燧燕统泌,29,快速指數運算演算法存在當x很大時,存在一種快速指數運算演算法,稱為平方再乘法(Square and Multiply)。當x以二進位表示時為n位元,即x=(xn-1
28、 ,xn-2 , . , x1 ,x0),則可利用以下方法求Ex(g)=gx,其中 xi 0 ,1,0 i n-1 , 。此方法共需n-1次平方及 個乘法,其中 為x以二進位表示時1 的個數。平均而言 , (x在二進位表示時有 個及 個)。因此,當x為n位元時,平均需要1.5n-2個乘法(平方算成一次乘法)。,锰饩鼎徽骡霓谒助炭獐坨龉筇杉泾舰沱怃庆沅軎锞筵碡担拘倨简肫瘤洒瞪鲣迥,30,金匙分配系統 (金匙分配協定,Key Distribution System or Protocol,KDS) 金匙分配系統之目的,在於使未曾謀面的兩人能共享 (分配) 一秘密金匙。 一般金匙分配系統,是指能使兩
29、人分配一共用秘密金匙。會議金匙分配系統(Conference-Key Distribution System,CKDS): 若一金匙分配系統,能使多人 (超過兩人) 同時共享一秘密金匙,則此系統稱為。 信賴的金匙分配中心 (Trusted-Key Distribution Center,TKDC) : 金匙分配系統有兩種型式,即為有第三者協助及不需第三者協助之金匙分配系統。有第三者協助之金匙分配系統,其第三者必須為可信賴的,我們稱之為可。,燠鸾钫朐疔铜根朐妇撩莅伸财找金鬼俣床壁席思畜奠仇绸左才哉酞每蹈,31,以指數函數實現 ElGamal 公開金匙分配系統 與PKDS系統相同,令本系統中存在一
30、大質數p及模p之原根g。 1.使用者i任選其私有秘密金匙xi,並求出其公開金匙 2. 使用者j任選一亂數 r 並利用使用者i之公開金匙求出 , 並將密文C=(C1 , C2)送給使用者i。3. 使用者i收到密文後,利用其秘密金匙xi求出 ,,熠竭俸期巳嫁崩蜻脍拯瘰钫州俎米石厩鹕栌罡忮低蛘觊磨轾鲁娜毽巡砂荮酮谴袱奋披适客孰耢诃脚瓯庥厍礁菔爸磷腿百,32,ElGamal 公開金匙分配系統的特性1. 本系統為機率式的密碼系統所謂機率式的密碼系統,是指對同一接收者之公開金匙而言,相同的明文,在不同時間加密時,可得不同的密文。與機率式密碼系統相對應的,是確定式密碼系統。典型的確定式密碼系統如RSA。在確定式密碼系統,相同的明文在不同時間加密一定得相同的密文。機率式密碼系統之缺點是會產生資料擴充 (Data Expansion)。2. 本系統加密快,但解密則較慢本系統加密時可利用事先算(Precomputation)技術以加快加密運算。因為亂數r與明文m無關,發送方可先計算C1及yir並將之儲存。當明文m輸入時,則僅需要一次乘法即可求出C2。但在解密時則需要兩次指數運算。,忍研逦员宸傍羔腙仇泸瀚驭寺琏蛑批列缪勤筛宛悌鳢腊肓俾祀涑汤蘧叛拗弑琦,