A. 什麼是雙線性對
你所說的是一種加密演算法。
雙線性對,也就是代數曲線上的Weil對和Tate對,最初在密碼學中只是用來攻擊橢圓曲線密碼系統和超橢圓曲線密碼系統。
不知道說明白了沒有,祝你好運朋友!!
B. 我們老師讓我們看著原文寫一篇論文,誰可以幫忙寫下。星期一就要交看。急!!!!
我只寫兩句吧……沒時間啊
第一句:The security and privacy of the Internet of Things has a relatively large impact on the participants. So it needs to establish the appropriate security framework to achieve data confidentiality, access control, client privacy and other functions to resist sophisticated attacks. 第二句:The papers used trustable computing technology and bilinear pairingssigncryption method to propose a secure transmission model for the Internet of things which satisfies the security needs of the two aspects of the Internet of Things - ONS inquiries and items of information transmission.
C. 能否舉例一個雙線性映射的實際例子
呵呵,好吧。看來你是個公鑰密碼學的初學者,跟你簡單講講這個雙線性映射。
1,要熟悉超奇異橢圓曲線域上群元素數學性質,比如:E(x,y):y^2=x^3+x這種橢圓曲線,每個群元素都是橢圓曲線上的點,比如P(x,y),那麼這個P就可以抽象表示成圖中定義裡面的g,u,v等。
2,要學習這種基於橢圓曲線上加法和點乘的運算原理。
3,有了以上基礎,就可以了解配對運算的原理了,比如weil配對,P和Q是階為m橢圓曲線上的兩個點,那麼兩個點的配對(pairing)運算,e(P,Q)=weil_paring(P,Q),產生的結果同樣滿足阿貝爾群屬性,因此滿足雙線性。
4,weil_paring演算法的原理,要了解除子,Miller演算法等,比較復雜。
關於可運行的代碼,你可以參考一下tate配對演算法,軟體名稱為:TinyPairing,可以在
http://opencores.com/project,tiny_tate_bilinear_pairing
下載。
D. Symantec專業版SSL證書支持ECC加密演算法,什麼是ECC加密
伺服器上裝 SSL 證書會不會影響到用戶瀏覽網頁的速度?
https://www.gworg.com/ssl/218.html
然而ECC加密演算法更簡單了,所以載入證書驗證速度提升。
平常我們看到的是:RSA演算法,目前獨立伺服器都支持ECC,不過CDN不支持。
E. 什麼是雙線性對以及橢圓曲線和雙線性對的關系
雙線性對是以橢圓曲線作為它的兩個自變數,而函數值是整數
F. 首次將橢圓曲線用於密碼學,建立公開密鑰加密的演演算法是在那一年
橢圓曲線密碼學(英語:Elliptic curve cryptography,縮寫為 ECC),一種建立公開密鑰加密的演算法,基於橢圓曲線數學。
橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的。
橢圓曲線密碼學:
橢圓曲線密碼學(英語:Elliptic curve cryptography,縮寫為ECC),一種建立公開密鑰加密的演算法,基於橢圓曲線數學。橢圓曲線在密碼學中的使用是在1985年由Neal Koblitz和Victor Miller分別獨立提出的。
ECC的主要優勢是在某些情況下它比其他的方法使用更小的密鑰——比如RSA加密演算法——提供相當的或更高等級的安全。ECC的另一個優勢是可以定義群之間的雙線性映射。
基於Weil對或是Tate對;雙線性映射已經在密碼學中發現了大量的應用,例如基於身份的加密。其缺點是同長度密鑰下加密和解密操作的實現比其他機制花費的時間長。
但由於可以使用更短的密鑰達到同級的安全程度,所以同級安全程度下速度相對更快。一般認為160比特的橢圓曲線密鑰提供的安全強度與1024比特RSA密鑰相當。
G. 線性系統的雙線性
式中分別是狀態向量和控制向量,上標T表示轉置;A,Pi和B均為常系數矩陣;dx/dt表示x對時間t的微商。這類狀態方程的特點是,它相對於狀態或控制在形式上分別是線性的,雙線性的名稱即源於此。但同時相對於狀態和控制來說,系統則不是線性的。它實際上是一類具有比較簡單形式的特殊非線性系統。雙線性系統模型是對線性系統模型的推廣,它能更准確地描述一類實際過程。生物繁殖過程就是一個典型的例子,用狀態變數x表示種群中生物體的數量,控制變數u表示可人為控制的凈增殖率,則控制種群中生物體數量的繁殖過程可用形式為dx/dt=ux的一個雙線性系統來描述。雙線性系統模型已被廣泛用於工程、生物、人體、經濟和社會問題的研究。例如,化學反應中的催化作用問題;人體內的水平衡過程、體溫調節過程、呼吸中氧和二氧化碳交換過程、心血管調節過程等問題;細胞內的某些生物化學反應問題;社會和經濟領域中的人口問題,動力資源問題,鋼鐵、煤炭、石油產品生產問題等。
雙線性系統的研究始於60年代,70年代以來得到了廣泛的重視和迅速的發展,成為非線性系統研究中比較成熟的分支之一。雙線性系統理論中已有的主要結果為:
①雙線性系統具有變結構系統的一些特徵,因而有一定的自適應性(見適應控制系統)。
②對於控制變數受限制(即控制變數的大小必須在一定的界限內)的情況,已經找到用頻率域語言表達的穩定性條件。
③雙線性系統具有比線性系統更好的能控性。即使控制變數受限制,系統仍可能是完全能控的。已經獲得系統完全能控的一些充分條件。
④用李雅普諾夫穩定性理論能夠求得雙線性系統的鎮定控制解,即可找到一個反饋控制律u=u(x)使系統實現全局穩定。這種控制函數是開關型或飽和型的,開關曲面(或曲線)對狀態變
而言是二次曲面(或曲線)。
⑤採用動態規劃或極大值原理已能解決雙線性系統的一些最優控制問題,如最速控制,最省燃料控制,以及離散雙線性系統和隨機雙線性系統的最優控制等。
雙線性系統理論已有不少實際應用的例子。例如核電站、核動力裝置中核裂變和熱交換過程的最優控制,人口預測和控制等。
H. 網路安全就業難度大不大
未邀自答。本來我都關機、躺下、准備睡覺了,結果手賤點了知乎,看到了這么一個問題,又看到好朋友 @scalers回答了這個問題,忍不住又把電腦打開,准備花一點時間認真回答一下這個問題。這可能不僅是對問題本身的回答,也是差不多這一年來我對信息安全這個領域的理解和體會吧。=============================利益相關:信息安全方向博士生,主攻Public Key Encryption,主要方向是Predicate Encryption。1-2年之內就要就業,方向應該就是數據安全了。這一年認識了不少領域內的前輩和朋友,了解到不少現狀。=============================0. 總體感受:人才既飽和,又匱乏現在安全行業的現狀基本是:上層人才極度匱乏,下層人才極度飽和。大概半年多前和一位領域內的人士聊天,對方說了這么一句話:我們招人要求真的不高啊,只要領域相關,7年以上工作經驗就好了。當時,幼稚的我心想,我靠你逗我呢,這還要求不高?哪兒找安全領域干7年以上的人去?經過半年的折騰,我現在的感覺是:這個要求真的不高,一點都不高,可能太低了…為什麼?因為信息安全這個領域太大了,大到什麼程度呢?大到做這個領域的人可能需要把幾乎計算機科學的所有領域全理解(注意,不是了解,是理解)以後,才能集大成,然後把這個領域做好。=============================1. 數學和計算機理論基礎要求信息安全中最理論的基礎是密碼學。密碼學誰提出來的?圖靈提出來的。為什麼是他提出的密碼學?因為密碼學的實現基礎是圖靈機,或者說是有限自動機原理。密碼學的理論基礎是抽象代數和資訊理論。想要比較深入的學習密碼學裡面的知識,至少要明白計算機領域的歸約(Rection),計算復雜性理論;至少要明白抽象代數裡面的群(Group)、環(Ring)、域(Field);至少要了解資訊理論中信息熵的概念;這些如果不理解的話,安全證明估計就過不去了…要是追新,看看密碼學界的發展,起碼說提出一個名字能明白是什麼意思,估計得了解了解橢圓曲線(Elliptic Curve),雙線性對(Bilinear Pairing)或者多線性對(Multilinear Pairing),格(Lattice)等等。=============================2. 編程能力要求有人說了,我不用學密碼學理論,我能看懂論文,把方案實現了就行了啊。因為實現的方案從理論上是否安全,要考察參數的選擇。參數選擇的話,就得看懂安全性證明了。我個人只是做了Java Pairing-Based Cryptography Library(jPBC)的一些實現,幾乎時常會收到很多郵件,詢問這個庫怎麼用,為什麼自己實現的不對。多數情況都是因為對根上的東西沒理解,導致用起來不對。有人說了,我也不用看懂論文,我能寫最經典的密碼學演算法,能正確調用就好了。很遺憾,就算是最經典的密碼學演算法,即使是有經驗的開發人員,絕大多數都不能正確實現。僅以RSA為例,請移步我的專欄文章:RSA有多安全,有多不安全?Black Hat 2014 - The Matasano Crypto Challenges解析 - 第一部分 - 劉學酥的密碼學與信息安全專欄 - 知乎專欄看看裡面有多少坑吧。=============================3. 計算機相關技術能力要求有人說了,我不用寫密碼學演算法,我能正確用就行了。提到網路通信,就有計算機網路的相關知識了。我個人感覺計算機網路知識的復雜度現在和操作系統都差不多了。尤其是現在分布式系統,比如分布式計算和分布式存儲技術的普及,分布式計算機網路本身就構成了一個比操作系統還要復雜的總系統。做安全的話,沒有計算機網路和操作系統的知識幾乎只能做點皮毛工作。提到網路和操作系統,就會想到這本身就需要比較強的編程能力。舉個簡單的例子,Java優秀的網路通信框架Netty和MINA(感謝 @Edsger Lin 的指正,這里打錯了),是不是需要了解一下?HDFS,MapRece是不是了解一下?要不要看看源代碼… 來吧,這相關的資料、書籍,可以放滿一個書櫃了。=============================4. 網路安全技術要求有人說了,我也不用懂這些,我是做技術的,了解網路知識以後,找漏洞挖漏洞,直接走向人生巔峰!怎麼說呢,漏洞這個東西雖然知識本身要求的不深入,但是非常考驗廣度。比如資料庫的了解,網路得了解,各種Web語言得了解,裡面有什麼坑得了解。而且,很多時候漏洞檢測和網路滲透會涉及到語言本身上去。舉個例子,Black Hat 2014中有個視頻,所在的公司開發了一套漏洞檢測工具Ravage(為什麼我知道,我聽譯的…逆天漏洞檢測及滲透生成工具——RAVAGE課程詳情)。這個工具的製作已經深入到JVM的匯編層了。=============================5. 文檔能力和與人交流的能力信息安全領域,不光是技術層面的,還有人員層面的。軟體開發過程中出現的漏洞,絕大多數都是開發人員沒有遵守安全軟體開發要求而導致的。同時,各個公司、各個產品的安全架構,安全技術都不太一樣。這種時候,為了保證產品的安全特性,就需要文檔撰寫和閱讀能力,以及交流能力了。我和某位領域內人士交流的時候,總聽到一種抱怨:我靠,這安全機制不是瞎搞么,這怎麼評估,怎麼實現?很遺憾,互聯網發展太快了,很多東西都沒有模塊化體系化,現實就是這樣。想要解決這個問題,就需要一群在計算機各個領域內都精通,或者退一步,都了解的人,將各種安全技術和產品抽象,從而提出並設計架構。這樣才能提出一種比較通用的方法,從架構上去解決大部分的安全問題。不過這對一個人的要求可是有點高啊。安全又僅僅是技術問題嗎?非也。信息安全中,技術佔3成,管理佔7成。技術再好,密鑰管理不成熟,開發流程不成熟,訪問控制機制設計的不成熟,甚至私下交易,從內部泄露用戶隱私,也會導致嚴重的安全問題。這並不是聳人聽聞。CSDN密碼資料庫泄露可能僅僅是冰山一角。要我看,用戶的密碼早就被泄露光了… 當然現在已經好了很多。這就意味著,管理也是個很困難的問題。說到管理,交流能力也是必不可少的。=============================6. 其他能力信息安全和通信技術是密不可分的。通信技術的發展必然會導致信息安全技術的發展。舉例來說,枚舉法是最沒創意的攻擊方法了。但是現在有了高性能計算機,分布式計算機系統,對於幾年前的數據,用枚舉法可能反而比其他方法更快。另一個例子,量子計算領域現在蓬勃發展,沒准幾年,十幾年或者幾十年後量子計算機就普及了。這並不是不可能,想想計算機從剛出現到現在人手幾台一共花費了多長時間?那個時候,現有的體制全部推翻重來,作為安全人員就要更新自己的知識庫了。當然了,這個例子有點極端,量子計算機真的來了,所有計算機科學相關的從業人員就要洗牌了。總的來說,信息安全領域要求從業人員隨時學習,隨時更新知識庫。而且這種更新速度是依賴於計算機科學這門學科的發展而來的。2008年DDoS攻擊還沒影子呢,現在DDoS幾乎就是家常便飯了。網路的迅速發展,特別是後面雲計算雲存儲的發展,給安全從業人員又帶來了更多的問題。這必須要求從業人員隨時更新自己的知識,持之以恆的站在最前沿思考問題。=============================7. 有人能做到嗎?密碼學精通,可以到安全研究院。比如很多著名密碼學家,Gentry,Shoup什麼的就在IBM,進行全同態加密的理論研究和具體實現。而且,理解密碼學的人學其他方面也比較快。但是需要到領域內快速積累。編程能力強,計算機相關技術強,就可以不光做安全了。但安全領域絕對歡迎這樣的人才。網路安全技術能力強,可以到任何一家互聯網公司做安全。知乎上的幾位技術派大牛們,大多是這方面的佼佼者。文檔能力和與人交流的能力強,可以做安全咨詢。這是個比較有意思的領域。這個領域更需要廣泛了解安全的相關知識。不僅從技術角度,也要從管理角度。我自己只是在公鑰密碼學中的一個很小的領域有一點點很小的成績。因為計算機基礎知識不足,接下來的一年我估計要各種補基礎知識了,而且估計還補不完。上面說的這些對人才的需求,基本上只要精通一點,就是領域內的佼佼者了。所以,信息安全領域是一個集大成的領域。而且幾乎任何一個分領域對於領域內知識的要求,都高於本身的要求。因為基礎不夠的話,想做安全就有點痴人說夢了。=============================8. 回到主題:會飽和嗎?回到問題上面來,安全人才會達到飽和嗎?我認為有生之年能把上面說的起碼都做過一遍,幾乎都是不可能的。信息安全的人才要求很高。能力強,哪怕是一方面能力強,都可以從茫茫人海中脫穎而出。一個直接的體現就是信息安全周圍配套內容的普及。我在做Black Hat,包括密碼學一些視頻的聽譯時,就嘗試過讓別人幫忙聽寫,我來翻譯。結果,即使是專業聽譯人員,拿到這些視頻也都瞎了。因為專業詞彙太多,幾乎是中文都不知道什麼意思。Black Hat系列這么好,為什麼一直以來沒人做字幕,聽寫翻譯?因為確實對聽譯人員要求很高。我自己水平有限,只能聽譯密碼學、Java、以及部分資料庫、網路通信相關主題的Black Hat,而且也會遇到各種問題,遇到從來沒聽說過的技術、開源代碼、工具、或者思想。當然這個過程也是收獲的過程。所以,從高層看,信息安全人才應該一直會保持匱乏的狀態,等待新鮮血液的注入。另一方面,由於門檻太高,不少人會在門外徘徊。門外的人多了,飽和一詞也就來了。對於我自己,雖然得到了領域內人士的部分認可。但是,越往裡面走,越發現裡面的坑有多深。唯一的辦法就是不停的學習和更新知識。畢竟,學習要比提出新方法簡單多了,大家說對嗎?=============================9. 只有信息安全領域是這樣?就如同事物都是螺旋向上發展的一樣,正像其他回答說的那樣,任何領域都是:水平不高,哪裡都飽和;水平高了,哪裡都會要。什麼叫水平高,高到什麼程度就夠了?我認為沒有盡頭。一個領域,越是鑽研,越是往深了看,就越發現自己的渺小和無能。這會反過來導致更強的求知慾和更強的動力。等覺得自己小到只是一個沙子的時候,抬頭一看,可能就會明白,絕大多數人,可能連分子大小都沒到,但他們認為自己內部的原子和電子,就是整個世界。希望我們都能成為一粒沙子,看著大海的波濤洶涌,而毫無意識的,為這個世界的組成貢獻自己的一份力量。以上。
I. 信息安全技術論文
密碼學與密匙管理
一 摘要:
密碼系統的兩個基本要素是加密演算法和密鑰管理。加密演算法是一些公式和法則,它規定了明文和密文之間的變換方法。由於密碼系統的反復使用,僅靠加密演算法已難以保證信息的安全了。事實上,加密信息的安全可靠依賴於密鑰系統,密鑰是控制加密演算法和解密演算法的關鍵信息,它的產生、傳輸、存儲等工作是十分重要的。
二 關鍵詞:密碼學 安全 網路 密匙 管理
三 正文:
密碼學是研究編制密碼和破譯密碼的技術科學。研究密碼變化的客觀規律,應用於編制密碼以保守通信秘密的,稱為編碼學;應用於破譯密碼以獲取通信情報的,稱為破譯學,總稱密碼學。
密碼是通信雙方按約定的法則進行信息特殊變換的一種重要保密手段。依照這些法則,變明文為密文,稱為加密變換;變密文為明文,稱為脫密變換。密碼在早期僅對文字或數碼進行加、脫密變換,隨著通信技術的發展,對語音、圖像、數據等都可實施加、脫密變換。
密碼學是在編碼與破譯的斗爭實踐中逐步發展起來的,並隨著先進科學技術的應用,已成為一門綜合性的尖端技術科學。它與語言學、數學、電子學、聲學、資訊理論、計算機科學等有著廣泛而密切的聯系。它的現實研究成果,特別是各國政府現用的密碼編制及破譯手段都具有高度的機密性。
密碼學包括密碼編碼學和密碼分析學。密碼體制設計是密碼編碼學的主要內容,密碼體制的破譯是密碼分析學的主要內容,密碼編碼技術和密碼分析技術是相互依相互支持、密不可分的兩個方面。密碼體制有對稱密鑰密碼體制和非對稱密鑰密碼體制。對稱密鑰密碼體制要求加密解密雙方擁有相同的密鑰。而非對稱密鑰密碼體制是加密解密雙方擁有不相同的密鑰,在不知道陷門信息的情況下,加密密鑰和解密密鑰是不能相互算出的。
對稱密鑰密碼體制中,加密運算與解密運算使用同樣的密鑰。這種體制所使用的加密演算法比較簡單,而且高效快速、密鑰簡短、破譯困難,但是存在著密鑰傳送和保管的問題。例如:甲方與乙方通訊,用同一個密鑰加密與解密。首先,將密鑰分發出去是一個難題,在不安全的網路上分發密鑰顯然是不合適的;另外,如果甲方和乙方之間任何一人將密鑰泄露,那麼大家都要重新啟用新的密鑰。通常,使用的加密演算法 比較簡便高效,密鑰簡短,破譯極其困難。但是,在公開的計算機網路上安全地傳送和保管密鑰是一個嚴峻的問題。1976年,Diffie和Hellman為解決密鑰管理問題,在他們的奠基性的工作"密碼學的新方向"一文中,提出一種密鑰交換協議,允許在不安全的媒體上通訊雙方 交換信息,安全地達成一致的密鑰,它是基於離散指數加密演算法的新方案:交易雙方仍然需要協商密鑰,但離散指數演算法的妙處在於:雙方可以公開提交某些用於運算的數據,而密鑰卻在各自計算機上產生,並不在網上傳遞。在此新思想的基礎上,很快出現了"不對稱密鑰密碼體 制",即"公開密鑰密碼體制",其中加密密鑰不同於解密密鑰,加密密鑰公之於眾,誰都可以用,解密密鑰只有解密人自己知道,分別稱為"公開密鑰"和"秘密密鑰", 由於公開密鑰演算法不需要聯機密鑰伺服器,密鑰分配協議簡單,所以極大地簡化了密鑰管理。除加密功能外,公鑰系統還可以提供數字簽名。目前,公開密鑰加密演算法主要有RSA、Fertezza、EIGama等。我們說區分古典密碼和現代密碼的標志,也就是從76年開始,迪非,赫爾曼發表了一篇叫做《密碼學的新方向》的文章,這篇文章是劃時代的;同時1977年美國的數據加密標准(DES)公布,這兩件事情導緻密碼學空前研究。以前都認為密碼是政府、軍事、外交、安全等部門專用,從這時候起,人們看到密碼已由公用到民用研究,這種轉變也導致了密碼學的空前發展。迄今為止的所有公鑰密碼體系中,RSA系統是最著名、使用最廣泛的一種。RSA公開密鑰密碼系統是由R.Rivest、A.Shamir和L.Adleman三位教授於1977年提出的,RSA的取名就是來自於這三位發明者姓氏的第一個字母。RSA演算法研製的最初目標是解決利用公開信道傳輸分發 DES 演算法的秘密密鑰的難題。而實際結果不但很好地解決了這個難題,還可利用 RSA 來完成對電文的數字簽名,以防止對電文的否認與抵賴,同時還可以利用數字簽名較容易地發現攻擊者對電文的非法篡改,從而保護數據信息的完整性。
在網上看到這樣一個例子,有一個人從E-mail信箱到用戶Administrator,統一都使用了一個8位密碼。他想:8位密碼,怎麼可能說破就破,固若金湯。所以從來不改。用了幾年,沒有任何問題,洋洋自得,自以為安全性一流。恰恰在他最得意的時候,該抽他嘴巴的人就出現了。他的一個同事竟然用最低級也是最有效的窮舉法吧他的8位密碼給破了。還好都比較熟,否則公司數據丟失,他就要卷著被子回家了。事後他問同事,怎麼破解的他的密碼,答曰:只因為每次看他敲密碼時手的動作完全相同,於是便知道他的密碼都是一樣的,而且從不改變。這件事情被他引以為戒,以後密碼分開設置,採用10位密碼,並且半年一更換。我從中得出的教訓是,密碼安全要放在網路安全的第一位。因為密碼就是鑰匙,如果別人有了你家的鑰匙,就可以堂而皇之的進你家偷東西,並且左鄰右舍不會懷疑什麼。我的建議,對於重要用戶,密碼要求最少要8位,並且應該有英文字母大小寫以及數字和其他符號。千萬不要嫌麻煩,密碼被破後更麻煩。
密碼設的越難以窮舉,並不是帶來更加良好的安全性。相反帶來的是更加難以記憶,甚至在最初更改的幾天因為輸人緩慢而被別人記住,或者自己忘記。這都是非常糟糕的,但是密碼難於窮舉是保證安全性的前提。矛盾著的雙方時可以互相轉化的,所以如何使系統密碼既難以窮舉又容易記憶呢,這就是門科學了。當然,如果能做到以下幾點,密碼的安全還是有保障的。
1、採用10位以上密碼。
對於一般情況下,8位密碼是足夠了,如一般的網路社區的密碼、E-mail的密碼。但是對於系統管理的密碼,尤其是超級用戶的密碼最好要在10位以上,12位最佳。首先,8位密碼居多,一般窮舉工作的起始字典都使用6位字典或8位字典,10位或12位的字典不予考慮。其次,一個全碼8位字典需要佔去4G左右空間,10位或12位的全碼字典更是天文數字,要是用一般台式機破解可能要到下個千年了,運用中型機破解還有有點希望的。再次,哪怕是一個12個字母的英文單詞,也足以讓黑客望而卻步。
2、使用不規則密碼。
對於有規律的密碼,如:alb2c3d4e5f6,盡管是12位的,但是也是非常好破解的。因為現在這種密碼很流行,字典更是多的滿天飛,使用這種密碼等於自殺。
3,不要選取顯而易見的信息作為口令。
單詞、生日、紀念日、名字都不要作為密碼的內容。以上就是密碼設置的基本注意事項。密碼設置好了,並不代表萬事大吉,密碼的正確使用和保存才是關鍵。要熟練輸入密碼,保證密碼輸人的速度要快。輸人的很慢等於給別人看,還是熟練點好。不要將密碼寫下來。密碼應當記在腦子里,千萬別寫出來。不要將密碼存人計算機的文件中。不要讓別人知道。不要在不同系統上使用同一密碼。在輸人密碼時最好保證沒有任何人和監視系統的窺視。定期改變密碼,最少半年一次。這點尤為重要,是密碼安全問題的關鍵。永遠不要對自己的密碼過於自信,也許無意中就泄漏了密碼。定期改變密碼,會使密碼被破解的可能性降到很低的程度。4、多方密鑰協商問題
當前已有的密鑰協商協議包括雙方密鑰協商協議、雙方非互動式的靜態密鑰協商協議、雙方一輪密鑰協商協議、雙方可驗證身份的密鑰協商協議以及三方相對應類型的協議。如何設計多方密鑰協商協議?存在多元線性函數(雙線性對的推廣)嗎?如果存在,我們能夠構造基於多元線性函數的一輪多方密鑰協商協議。而且,這種函數如果存在的話,一定會有更多的密碼學應用。然而,直到現在,在密碼學中,這個問題還遠遠沒有得到解決。
參考文獻:
[1]信息技術研究中心.網路信息安全新技術與標准規范實用手冊[M].第1版.北京:電子信息出版社.2004
[2]周學廣、劉藝.信息安全學[M].第1版.北京:機械工業出版社.2003
[3]陳月波.網路信息安全[M].第1版.武漢:武漢工業大學出版社.2005
[4]寧蒙.網路信息安全與防範技術[M].第1版.南京:東南大學出版社.2005
J. 公鑰長度不滿足是什麼意思
干貨:三種公鑰密碼
公鑰密碼概述
世界上幾乎每天都有新的密碼演算法誕生,同時,也有舊的密碼演算法被廢棄。事實上,大部分密碼演算法的誕生並未給密碼學家們帶來震撼,甚至在密碼界連一點細微的漣漪都沒有激起。然而,RSA公鑰密碼演算法自1977年問世以來,成為了密碼學史上劃時代的革命事件,給密碼學家們帶來了驚喜,其最大的貢獻在於它解決了傳統對稱密碼演算法難以解決的兩個問題:一是簽名認證,另一個是密鑰交換(協商)。公鑰密碼演算法的設計比對稱密碼演算法的設計具有更大的挑戰性。目前所使用的公鑰密碼演算法的安全性基礎主要是數學中的難題。
公鑰密碼演算法也常稱為非對稱密碼演算法。其最大特點是其密鑰是成對出現的,其密鑰對由公鑰和私鑰組成。公鑰和私鑰是不相同的,已知私鑰可推導出公鑰,但已知公鑰不能推導出私鑰。公鑰可對外公開,私鑰由用戶自己秘密保存。
公鑰密碼演算法有兩種基本應用模式:一是加密模式,即以用戶公鑰作為加密密鑰,以用戶私鑰作為解密密鑰,實現多個用戶的加密信息只能由一個用戶解讀;二是認證模式,即以用戶私鑰進行數字簽名,以用戶公鑰驗證簽名,實現一個用戶的簽名可以由多個用戶驗證。用於加解密中的密鑰對,稱為加密密鑰對。用於簽名驗證中的密鑰對稱為簽名密鑰對。
目前的公鑰密碼主要有RSA、ECC、IBC三類,針對RSA我國沒有相應的標准演算法出台,而針對ECC和IBC,我國分別有相應的SM2、SM9標准演算法發布。
RSA
1977年,麻省理工學院的三位數學家Rivest、Shamir、Adleman創建了一個比較完善的公鑰密碼演算法,就是著名的RSA演算法。RSA演算法在過去一直是最受歡迎的公鑰密碼演算法,其演算法比較簡單,加密解密都只是一個模冪運算,速度快,效率高。在相當長的一段時間內,RSA在公鑰密碼演算法中占據著主導地位,並得到了廣泛的應用。
也許因為RSA密碼的特殊地位和重要應用,國際上破解RSA的研究工作從來沒有間斷並在不斷推進。目前RSA 1024已失去其安全性,將被淘汰。目前看來,RSA 2048(及以上)是安全的,而RSA演算法復雜度隨著模長的增加,運算量成指數級上升,同時也相應增加了密鑰存儲量。
2011年,國家密碼管理局下發通知,停止審批RSA密碼應用新建項目。
ECC(SM2)
1985年, Miller和 Koblitz分別獨立提出了橢圓曲線密碼(ECC)。和RSA相比,ECC演算法的數學理論比較復雜,單位安全強度相對較高。ECC安全性建立在離散對數求取困難性基礎上,它的破譯或求解難度基本上是完全指數級的,而破解RSA的難度是亞指數級的。ECC公鑰密碼是單位比特強度最大的公鑰密碼,256比特的ECC公鑰密碼的安全強度比2048比特的RSA公鑰密碼強度還要強。要達到同樣的安全強度,ECC所需的密鑰長度遠比RSA低。
2012年,國家密碼管理局發布ECC國密標准演算法SM2。
IBC (SM9)
基於標識的密碼(Identity-Based Cryptography)簡稱IBC,是與RSA、ECC相比具有其獨特性的又一種公鑰密碼。這種獨特性表現在其公鑰是用戶的身份標識,而不是隨機數(亂碼)。
IBC這個概念最初出現於1984年Shamir(RSA密碼創始人之一)的論文中,IBC密碼系統公鑰和私鑰採用一種不同於RSA和ECC的特殊方法產生,即公鑰是用戶的身份標識,而私鑰通過綁定身份標識與系統主密鑰(master key)生成。
Miller在1985年創建橢圓曲線密碼(ECC)後不久,在其一篇未發表的手稿中首次給出了計算雙線性對的多項式時間演算法。但因為當時雙線性對在公鑰密碼中尚未取得有效應用,因此沒有引起研究者的關注。當雙線性對在公鑰密碼學中獲得諸多應用後,其計算的重要性也日趨顯著,時隔19年之後,Miller於2004年重新整理了當年的手稿,詳盡地論述了雙線性對的計算。雙線性對的有效計算奠定了IBC密碼演算法基礎。
2016年,國家密碼管理局於發布IBC國密標准演算法即SM9。
三種公鑰密碼應用比較
RSA與ECC/SM2公鑰密碼是基於數字證書的公鑰密碼,IBC/SM9是無證書的基於標識的公鑰密碼。
基於數字證書的公鑰密碼是目前廣泛使用的公鑰密碼,由可信的權威機構(CA)為每個用戶簽發公鑰證書。
CA擁有用戶的身份和公鑰後,CA需要驗證用戶的有效性和合法性,如果驗證通過,CA為其頒發證書,而這個證書包含CA的私鑰對用戶公鑰和身份等信息的簽名。如果想要驗證用戶的公鑰,需通過CA的公鑰驗證用戶的證書。
IBC作為PKI體系的發展和補充,既保證了簽名的安全特性,又滿足了各種應用更靈活的安全需求。IBC應用於PKI中是無證書的(certificateless),由於標識本身就是實體的公鑰,這類系統就不再依賴證書,在某種程度上簡化了PKI的應用。
在IBC中,可信第三方是密鑰生成中心KGC(key generation center),類似於PKI中的CA,一旦用戶的身份標識確定,KGC僅僅只需要驗證該用戶是否擁有該身份標識。如果驗證成功,則KGC為用戶創建其私鑰,這個私鑰是根據用戶身份標識和KGC的根私鑰生成的。
IBC密碼的應用比傳統公鑰密碼的應用在某種程度上更加簡單,但是,其代價是IBC密碼的設計與計算卻比其他公鑰密碼復雜得多。在IBC演算法中,除了RSA和ECC中所具有的運算外,還增加了復雜的雙線性對(bilinear)計算。因此,IBC密碼演算法運行速度遠不如RSA和ECC