在過去不久的2020年10月26日,全國不同地區(qū)的密碼管理局向民眾發(fā)出了信息,讓更多人知道《中華人民共和國密碼法》是頒布一周年。
【廣東省密碼管理局】2020年10月26日,《中華人民共和國密碼法》頒布一周年。密碼是保障網絡和信息安全的核心技術和基礎支撐,關系到國家安全、國計民生和社會公共利益。學習密碼法,掌握密碼基礎知識,用密碼維護國家安全和人民群眾利益保護個人合法權益。
【陜西省密碼管理局】貫徹落實密碼法,樹立總體國家安全觀,提高密碼應用意識,營造尊法、學法、守法、用法的濃厚氛圍,是政府和全社會的共同責任。
最近剛好學了一些“商用密碼安全評估”的專業(yè)知識,就趕著熱點話題順便寫個知識總結叭。
《中華人民共和國密碼法》于2020年1月1日起正式實行,密碼正式納入法律監(jiān)管框架。在密碼法的條文中,將密碼分為“核心密碼”、“普通密碼”和“商用密碼”。
核心密碼、普通密碼用于保護國家秘密信息,屬于國家秘密,核心密碼保護信息的最高密級為絕密級,普通密碼保護信息的最高密級為機密級。商用密碼用于保護不屬于國家秘密的信息。我們日常生活中用到的大部分密碼都是商用密碼,并且公民、法人和其他組織都需要依法使用商用密碼保護網絡與信息安全。
我們平時輸入的取款密碼、網站的登錄密碼,實際上并不是密碼法中規(guī)定的“密碼”。準確來講,這些“密碼”應該稱為“口令”,只是一種最簡單、最初級的認證方式。而真正的“密碼”,藏在安全支付設備中、藏在網絡系統(tǒng)內,默默守護國家秘密信息安全、守護我們每個人的信息安全。密碼應用早已滲透到了社會生產生活的方方面面。
本文主要講述密碼學的以下四項內容:
- 密碼發(fā)展史
- 密碼算法
- 密碼產品
- 密碼標準規(guī)范
一、密碼發(fā)展史
密碼學是一門古老而年輕的學科,她一直在竊密與反竊密、保密與破譯的攻防對抗中不斷演變,完善自我。密碼的形態(tài)主要經歷了古典密碼、機械密碼、現(xiàn)代密碼三個階段,未來還有可能出現(xiàn)正處在研究階段的量子密碼。
1、古典密碼
古典密碼是密碼學的源頭,這一時期的密碼是一種藝術,還不能叫科學。
古典密碼分為代換密碼和置換密碼:代換密碼采用一個代換表做密鑰,將一段明文轉換為密文就叫單表代換,采用多個代換表做密鑰就叫多表代換;置換密碼是一種特殊的代換密碼,不改變明文字母,只改變他們的位置。
舉個典型的代換密碼例子:凱撒密碼。
“凱撒密碼”就是羅馬帝國的凱撒大帝為了戰(zhàn)爭通信專門發(fā)明的密碼,原理非常簡單:假定密鑰 k = (1,11),代表明文中字母 a 會變?yōu)?l ,b 會變?yōu)?m,明文消息為 "i am nine",N = 26。明文加密的過程如下表所示:
現(xiàn)在市面上還有賣凱撒密碼的玩具。
凱撒密鑰的密鑰取值范圍只有25,學過信息論的人都知道,只要多截獲一些密文,很容易被窮舉破譯。為了加強密碼強度,多表代換出現(xiàn)了,典型的例子是“維吉尼亞密碼”,原理也很簡單:明文信息為 "i am nine i feel very good",代換表數(shù)目 d = 6,密鑰 k = (2,8,15,7,4,17)。加密過程如下表:
古典密碼其實還是古時候的手工作業(yè)方式,早已被很容易地破解掉了,古典密碼都是不安全的。
2、機械密碼
出現(xiàn)機械和電動設備后,加密解密過程開始用機械設備自動化進行,這時候的密碼就叫做機械密碼,最典型的就是恩尼格瑪密碼機。
“恩尼格碼”(Enigma,謎)密碼機是二戰(zhàn)時期的納粹德國及其盟國,特別是德國軍方所使用的一種高級機械加密系統(tǒng)。我很喜愛的演員康伯巴奇(飾演艾倫圖靈)主演的電影《模仿游戲》里,就講述了二戰(zhàn)期間艾倫·圖靈破解德軍恩尼格瑪機的精彩故事。當時看完非常震撼,知乎了一晚上原理到底是什么,這次有機會就總結一下自己粗淺的理解~
恩尼格瑪密碼機的設置包含了以下幾個部分:
轉子:轉子的結構及順序。(初始有三個轉子,慢轉子、中轉子和快轉子,每個轉子上有26個數(shù)字對應26個字母。后期發(fā)展為從六個轉子中選三個或四個轉子)
起始位置:由操作員決定,發(fā)送每條消息時都不一樣。
接線板:在鍵盤和第一個轉子之間用接線板的連線將輸入的字母進行替換(26個字母中選取12個字母兩兩配對,完成字母轉換,增加復雜度。后期變?yōu)?0個字母兩兩配對)
當按下鍵盤上的一個字母鍵,字母通過接線板替換成另一個字母,再經過三個轉子的三次替換,最后加密后的字母在顯示器上通過燈泡閃亮來顯示,而轉子就自動地轉動一個字母的位置。
舉例來說,當?shù)谝淮捂I入A,燈泡B亮,轉子轉動一格,各字母所對應的密碼就改變了。第二次再鍵入A時,它所對應的字母就可能變成了C;同樣地,第三次鍵入A時,又可能是燈泡D亮了。
——這就是“恩尼格瑪”難以被破譯的關鍵所在,這不是一種簡單替換密碼。同一個字母在明文的不同位置時,可以被不同的字母替換,而密文中不同位置的同一個字母,又可以代表明文中的不同字母,字母頻率分析法在這里絲毫無用武之地了。這種加密方式在密碼學上被稱為“復式替換密碼”。
加密時,加密者要在機器下方的鍵盤上按出明文,每當按下一個字母,鍵盤上方背光字母盤上的一個字母就會亮起來,這就是機器所生成的密碼。我們便可以根據(jù)按順序亮起的字母,記錄下一串與明文長度相等的密碼,這就是密文。
解密時,加密者將他所使用的轉子組合(及其安裝位置)和每個轉子的起始位置以及接線板的接線方式事先告知接收者,接收者必須擁有一臺與加密者完全相同的恩尼格碼密碼機。一旦按照規(guī)定的配置設置好后,接收者只需將密文通過鍵盤輸入密碼機,明文會在背光字母盤上亮起,解密就完成了。
讓我們來算算一臺擁有三個轉子、每個轉子26個數(shù)字、接線板隨機替換6對字母的恩尼格瑪機將會產生多少種密鑰的組合:
也就是說,譯碼者至多需要嘗試一億億種不同的配置,才能通過蠻力破譯出密碼。因此,如果無法事先得到密碼機的配置信息,那么破譯密碼幾乎是不可能的。而且,即使偶爾能在戰(zhàn)爭中繳獲密碼機的配置信息表,這個信息也不是一成不變的。德軍可能每月、甚至每周都要對此進行更換,舊密碼隨時都有可能失效。因此當時希特勒才會驕傲地認為恩尼格瑪機是日耳曼民族所創(chuàng)造出的無法被破解的密碼。
再完美的事物也有瑕疵。明文中的同一個字母在密碼中幾乎可以變成任意的其它字母,但就是無法成為它本身。因此在破譯時,我們可以確定:A 絕對不會是 A,B 絕對不會是 B ...
利用這個漏洞,破譯者可以先嘗試猜測一個可能會出現(xiàn)在密碼中的詞語或短語,比如德語 “Heil Hitler”,然后把這個詞語放在密文中任意的位置上,與整段密碼進行比對,如果發(fā)現(xiàn)有重合的字母,那就說明該詞語與當前的位置不匹配,一旦找到了一個沒有重復字母的位置,那么很有可能那段密碼所對應的明文正是 “Heil Hitler”。
在確定了至少一組正確的對應字母的前提下,破譯者便可以通過假設和推理的方法猜測出一些可能的接線板上的字母配對。由于接線板上的一條接線會將兩個字母綁定在一起,因此,如果我們猜測 A 接 B ,而由此卻推導出了 C 接 A 的話,那么 A 接 B 的方案就是錯的,而且由 A 接 B 所推導出來的一切可能的方案也全部都是錯的。當接線板上一個字母與所有其它字母的配對都被否決后,就說明問題出在轉子上。這時,破譯者要么更換轉子,要么變動轉子的位置,要么設定新的轉子起始位置,再繼續(xù)排查下去。這就是破譯恩尼格瑪機的通用方法。
由于人力操作需要耗費大量的時間,英國數(shù)學家艾倫·圖靈專門設計制造了一臺 “炸彈機”(Bombe),通過電子技術,運用上述的排除法來破譯 “恩尼格瑪”機,最快的一次僅用了大約20分鐘,基本達到了實時破譯,這就是電影《模仿游戲》里講的破譯過程。
本文的封面圖就是恩尼格瑪機的簡筆畫~
3、現(xiàn)代密碼
“信息論之父”香農關于保密通信理論的發(fā)表和美國數(shù)據(jù)加密標準DES的公布,以及公鑰密碼思想的提出,標志著密碼進入了現(xiàn)代密碼時期。密碼技術逐漸建立起完善的理論基礎,成為一門現(xiàn)代意義上的學科。隨著計算機行業(yè)的迅猛發(fā)展,信息的機密性、數(shù)據(jù)的完整性、信息來源的真實性和行為的不可否認性等需求急劇增加,而這些需求都需要依賴密碼技術的防泄密、防篡改、仿假冒和防抵賴等特點來實現(xiàn)。
1940s,香農連續(xù)發(fā)表了《保密系統(tǒng)的通信理論》和《通信的數(shù)學理論》兩篇劃時代的論文,提出了理想密碼模型“一次一密”理論,最安全的密碼是 1 比特密鑰保護 1 比特明文,然而現(xiàn)實中真正無限長隨機密鑰很難找到,序列密碼就出現(xiàn)了,它可以用“短的種子密鑰生成周期很長的隨機密鑰序列”,即輸入較少比特的初始密鑰,借助數(shù)學公式產生周期很長的密鑰,再用這些密鑰和明文逐比特進行異或得到密文,近似的可以達成”一次一密“。
1970s,IBM設計出DES算法,這是一種分組密碼,密鑰長度為 56 比特,密鑰量可以達到 2^56 種,這個數(shù)量已經高于了恩尼格瑪機的密鑰數(shù)量,操作還遠比恩尼格瑪機便捷,密文統(tǒng)計規(guī)律更加隨機。1998年DES算法被一臺 25 萬美元的計算機在 56 個小時內破譯,從此不再使用。
1990s,AES算法產生,密鑰長度最長可達 256 比特,,即 2^256 種,目前還未被破譯。
隨著互聯(lián)網的發(fā)展,兩兩用戶都需要密鑰的話,n 個用戶需要 n(n-1)/2 對密鑰,密鑰量太大,公鑰密碼思想隨之產生:加密密鑰公開,解密密鑰保密,n 個用戶只需要 n 對密鑰?;诖笳麛?shù)因子的RSA算法是目前比較常用的公鑰加密算法和簽名方案(密碼算法章節(jié)會詳細介紹此算法)。隨著計算機算力的增強,2003年,RSA-576 被成功分解(密鑰長度為 576 個比特);2005年,RSA-640 被成功分解;2009年,RSA-768 被成功分解。目前,RSA-2048 可以使用,聽說還有人懸賞20萬美元來分解這個2048位的巨型整數(shù)。
現(xiàn)代密碼學還有各種各樣的密碼算法,我們在密碼算法章節(jié)介紹。
4、量子密碼
過去,密碼分析家們一直都在尋找一個分解因數(shù)的捷徑,希望用理論性革新密碼學。但因數(shù)分解的研究已經持續(xù)了好幾個世紀,進展并不大,所以也有不少分析家在尋求技術性的革新,一種可以更快執(zhí)行密碼分析的技術——量子計算機。這就是「一力降十會」式的降維打擊,因為量子計算機的計算速度使得現(xiàn)代超級計算機像一把老舊的算盤,它可以通過算力的突飛猛進破解所有艱澀的密碼,會將大整數(shù)因子分解變成易如反掌的事。
量子計算中的 Shor 算法可以在多項式時間內求解大整數(shù)因子分解和離散對數(shù)問題,給經典的RSA 算法和 ElGamal 算法這些基于大整數(shù)因子分解或離散對數(shù)的公鑰算法帶來了致命影響?,F(xiàn)在量子計算機的設計理論已經經過驗證,出現(xiàn)只取決于技術的進步。因此,各個國家的密碼管理局都在啟動抗量子攻擊的密碼算法研究工作。
每個國家管理密碼的組織也并不相同。美國是的密碼學中心;英國負責這部分事務的是 GCHQ(政府通信總部),俄羅斯則是前身為 FAPSI 的聯(lián)邦專用通信和信息服務警衛(wèi)局,法國負責這部分的是 ANSSI (法國國家網絡安全局),中國負責管理密碼的就是密碼管理局了。雖然每個管理機構的名稱和職責范圍有不同,但他們確實都有管理密碼的責任。
我國密碼管理局公示過資助量子密鑰研究的信息,量子密碼還是密碼科學技術國家重點實驗室的研究方向,在各個學術分享和密碼論壇上它也從不缺席。美國國家安全局在官網上展示了國家對量子密碼的網絡安全觀點,法國也公開宣稱其計劃在 2022 年前部署第一個量子密鑰分發(fā)解決方案。雖然量子密碼離我們普通人的生活還非常遙遠,但在國家密碼管理局這樣的密碼研究機構中,它已經是非常重要的研究方向了。
二、密碼算法
常見的密碼算法包括對稱密碼算法、公鑰密碼算法和密碼雜湊算法三個類別。
1、對稱密碼算法
對稱算法簡單說就是加密的人用一把鑰匙鎖上箱子,解密的人要用同一把鑰匙才能打開這個箱子。對稱算法分為序列密碼和分組密碼。
序列密碼(我國發(fā)布有ZUC祖沖之序列密碼算法)的特點在于密鑰流可以在明文序列到來之前生成。序列密碼對每個明文序列的加密操作僅僅是一次異或,因此序列密碼的執(zhí)行速度通常很快,對計算資源的占用也較少,常用于功耗或者計算能力受限的系統(tǒng)中,比如嵌入式系統(tǒng)、移動終端等,或者一些實時性要求高的場景,比如語音通信、視頻通話等。
分組密碼(我國發(fā)布的SM4分組密碼算法),明文分組經過迭代加密函數(shù)變換后的輸出又稱為下一輪迭代加密函數(shù)的輸入,每一輪迭代的函數(shù)是相同的,不同的是輸入的輪密鑰。解密時只需要把加密過程中產生的輪密鑰逆序排列就能從密文分組中恢復出明文分組。
序列密碼與分組密碼的對比分組密碼以一定大小作為每次處理的基本單元,而序列密碼則是以一個元素(一個字母或一個比特)作為基本的處理單元。 序列密碼是一個隨時間變化的加密變換,具有轉換速度快、低錯誤傳播的優(yōu)點,硬件實現(xiàn)電路更簡單;其缺點是:低擴散(意味著混亂不夠)、插入及修改的不敏感性。 分組密碼使用的是一個不隨時間變化的固定變換,具有擴散性好、插入敏感等優(yōu)點;其缺點是:加解密處理速度慢、存在錯誤傳播。
2、公鑰密碼算法
公鑰密碼算法又叫非對稱密碼算法,簡單說就是加密的人用一把鎖將箱子鎖上,這個鎖大家都可以擁有,但是解密的人必須用鑰匙才能打開,也就是加密的人自己也打不開箱子,只有擁有鑰匙的人才能打開箱子。大家都能獲取到的這個鎖就叫公鑰,只有自己有的鑰匙就叫私鑰。
下面就以原理比較簡單的RSA算法為例,講解一下公鑰密碼算法的原理。密碼學和數(shù)論密切相關,需要一些數(shù)學理論的定理、公式的基礎。
前面講到的基于大整數(shù)因子分解的RSA算法過程步驟如下:
這里面有一些數(shù)論的基礎知識:
1、費馬小定理:如果 p 是一個質數(shù),而整數(shù) a 不是 p 的倍數(shù),則有
2、費馬小定理其實是歐拉定理的一個特殊情況,下面是歐拉定理的公式:
3、有關求余 mod 的公式
上面就是RSA算法的數(shù)學證明過程。RSA是美國發(fā)布的,也是迄今為止適用范圍最廣的公鑰算法, 各國對密碼算法嚴格限制出口,它曾在美國禁止出口名單中,印有幾行 RSA 密碼的 T 恤也曾在禁出口名單中,美國人在 T 恤背面印上憲法條文對此進行抗議。
我國發(fā)布的SM2橢圓曲線公鑰密碼算法是基于橢圓曲線離散對數(shù)來得到公鑰和私鑰的,與RSA算法相比,SM2算法有以下優(yōu)勢:
安全性高。256比特的SM2算法密碼強度已經超過了RSA-2048,與RSA-3072相當。因為基于橢圓曲線上離散對數(shù)問題的苦難性要高于一般乘法群上的離散對數(shù)問題。
密鑰短。SM2-256密鑰長度為256比特,RSA-2048為2048位。因為橢圓曲線基于域的運算位數(shù)要小于傳統(tǒng)離散對數(shù)。
私鑰產生簡單。RSA私鑰產生時需要用到兩個隨機產生的大素數(shù),除了需要保證隨機性以外,還需要用到素數(shù)判定算法,產生過程復雜且較緩慢;而SM2私鑰的產生只需要生成一個一定范圍內的256比特的隨機數(shù)即可,因此產生過程簡單,存在的安全風險也相對較少。
簽名速度快。同等安全強度下,SM2算法在用私鑰簽名時,速度遠超RSA算法。
3、密碼雜湊算法
密碼雜湊算法又稱作”散列算法“或”哈希算法“。雜湊算法將很長的消息通過壓縮函數(shù)壓縮到一個固定的比特長度。雜湊函數(shù)是單向的,從明文輸入到計算得到密文雜湊值很簡單,但是從雜湊值推出明文是非常困難的。我國發(fā)布的雜湊算法是SM3算法。
三、密碼產品
說了這么多密碼發(fā)展史和密碼算法,我們日常生活中到底什么叫做商用密碼產品呢?舉一些典型的例子吧。
1、智能IC卡
我們的各種銀行卡、二代身份證、圖書卡門禁卡飯卡等校園卡,公交卡醫(yī)??ㄉ绫?ǖ鹊?。
2、智能密碼鑰匙
我們一般用的USB Token和USB Key,專門保護用戶私鑰、數(shù)字證書的載體。
智能IC卡和智能密碼鑰匙的關系相同之處:處理器芯片、標準和指令格式基本是相同的。 不同之處:智能IC卡主要作用是對卡中的文件提供訪問控制功能,與讀卡器進行交互;智能密碼鑰匙作為私鑰和數(shù)字證書的載體,向具體的應用提供密碼運算功能。
3、密碼機
密碼機以整機形態(tài)出現(xiàn),與一般的服務器、工控機等類似,可以部署在通用的機架中,實現(xiàn)數(shù)據(jù)加解密、簽名/驗證、密鑰管理、隨機數(shù)生成等功能。目前國內的密碼機有通用的服務器密碼機,應用于證書認證領域的簽名驗簽服務器和應用于金融行業(yè)的金融數(shù)據(jù)密碼機。
4、VPN
我們常用的VPN就是使用密碼技術在互聯(lián)網中構建臨時的安全通道的技術。VPN之所以叫虛擬網,主要是因為VPN中任意兩個節(jié)點間的連接并沒有使用傳統(tǒng)專網所需的端到端的物理鏈路,而是在公用網絡服務商提供的網絡平臺上形成邏輯網絡,用戶數(shù)據(jù)在邏輯鏈路中進行傳輸,實現(xiàn)物理分散、邏輯一體的目的。主流的VPN產品包括IPSec VPN網關(工作在網絡層)和SSL VPN網關(工作在應用層和傳輸層之間)。
5、電子簽章
電子簽章系統(tǒng)應用于電子公文、電子合同、電子證照、電子票據(jù)等諸多領域。電子簽章將傳統(tǒng)印章與電子簽名技術進行結合,讓電子文檔中的電子簽章具有了傳統(tǒng)印章一樣的功能,密碼處理過程包括電子印章的生成,電子簽章的生成,電子印章驗證和電子簽章驗證四部分。
電子簽章和電子印章的關系:
電子印章對應與傳統(tǒng)印章,具體形態(tài)上,電子印章是一種由制作者簽名的包括持有者信息和圖形化內容的數(shù)據(jù),可用于簽署電子文件。電子簽章是一種由制作者簽名的包括持有者信息和圖形化內容的數(shù)據(jù),可用于簽署電子文件。電子簽章指使用電子印章簽署電子文件的過程,電子簽章過程產生的包含電子印章信息和簽名信息的數(shù)據(jù)稱為電子簽章數(shù)據(jù)。
6、動態(tài)口令
Web系統(tǒng)登陸,金融支付(U盾)等場景,還有就是我們經常使用的短信驗證碼啦。
四、密碼標準規(guī)范
商用密碼安全評估時,主要從技術要求、管理要求、密鑰管理三大塊內容來做具體評估細則。下面是一些與商用密碼評估相關的法律法規(guī)和標準規(guī)范,可以參考學習。
《商用密碼管理條例》
《信息系統(tǒng)密碼應用基本要求》(GM/T 0054-2018)國標已進入報批稿階段
《信息系統(tǒng)密碼測評要求》(試行)
《商用密碼應用安全性評估測評過程指南》(試行)
《商用密碼應用安全性評估測評作業(yè)指導書》(試行)
《政務信息系統(tǒng)密碼應用與安全性評估工作指南》
通過評審的《密碼應用方案》
密碼行業(yè)相關標準(GM/T系列標準)
1.《2003密鑰,干貨看這篇!《密碼法》頒布一周年,對于「密碼」你了解多少?》援引自互聯(lián)網,旨在傳遞更多網絡信息知識,僅代表作者本人觀點,與本網站無關,侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《2003密鑰,干貨看這篇!《密碼法》頒布一周年,對于「密碼」你了解多少?》僅供讀者參考,本網站未對該內容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉載時請保留本站內容來源地址,http://f99ss.com/gl/2502432.html