rsa專利
1、有多少種密碼方式?除了摩斯密碼外還有什麼密碼?
1、RSA演算法密碼
RSA演算法是第一個能同時用於加密和數字簽名的演算法,也易於理解和操作。RSA演算法是一種非對稱密碼演算法,所謂非對稱,就是指該演算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。
2、ECC加密法密碼
ECC演算法也是一個能同時用於加密和數字簽名的演算法,也易於理解和操作。同RSA演算法是一樣是非對稱密碼演算法使用其中一個加密,用另一個才能解密。
3、三分密碼
首先隨意製造一個3個3×3的Polybius方格替代密碼,包括26個英文字母和一個符號。然後寫出要加密的訊息的三維坐標。訊息和坐標四個一列排起,再順序取橫行的數字,三個一組分開,將這三個數字當成坐標,找出對應的字母,便得到密文。
4、柵欄加密法密碼
柵欄加密法是一種比較簡單快捷的加密方法。柵欄加密法就是把要被加密的文件按照一上一下的寫法寫出來,再把第二行的文字排列到第一行的後面。
5、針孔加密法密碼
這種加密法誕生於近代。由於當時郵費很貴,但是寄送報紙則花費很少。於是人們便在報紙上用針在需要的字下面刺一個孔,等到寄到收信人手裡,收信人再把刺有孔的文字依次排列,連成文章。
2、2000年——著名的RSA演算法專利失效。歷史
這得看當初無效這個發明的案件,這是無效官司了, 公開審理的么?否則沒辦法查到。
3、de=1modφ(n)是什麼意思
在RSA演算法中,de=1modφ(n)是指de與1關於φ(n)同餘。
對極大整數做因數分解的難度決定了RSA演算法的可靠性。對一極大整數做因數分解愈困難,RSA演算法愈可靠。
假如有人找到一種快速因數分解的演算法的話,那麼用RSA加密的信息的可靠性就肯定會極度下降。但找到這樣的演算法的可能性是非常小的。
只有短的RSA鑰匙才可能被強力方式解破。世界上還沒有任何可靠的攻擊RSA演算法的方式。只要其鑰匙的長度足夠長,用RSA加密的信息實際上是不能被解破的。
(3)rsa專利擴展資料:
由於RSA演算法基於大數分解(無法抵抗窮舉攻擊),因此在未來量子計算能對RSA演算法構成較大的威脅。
一個擁有N量子比特的量子計算機,每次可進行2^N次運算,理論上講,密鑰為1024位長的RSA演算法,用一台512量子比特位的量子計算機在1秒內即可破解。
1983年麻省理工學院在美國為RSA演算法申請了專利。這個專利2000年9月21日失效。由於該演算法在申請專利前就已經被發表了,在世界上大多數其它地區這個專利權不被承認。
4、如何驗證DNS伺服器是否支持DNSSEC
dns攻擊主要有以下這幾種方式:
DNS緩存感染
攻擊者使用DNS請求,將數據放入一個具有漏洞的的DNS伺服器的緩存當中。這些緩存信息會在客戶進行DNS訪問時返回給用戶,從而把用戶客戶對正常域名的訪問引導到入侵者所設置掛馬、釣魚等頁面上,或者通過偽造的郵件和其他的server服務獲取用戶口令信息,導致客戶遭遇進一步的侵害。
DNS信息劫持
TCP/IP體系通過序列號等多種方式避免仿冒數據的插入,但入侵者如果通過監聽客戶端和DNS伺服器的對話,就可以猜測伺服器響應給客戶端的DNS查詢ID。每個DNS報文包括一個相關聯的16位ID號,DNS伺服器根據這個ID號獲取請求源位置。攻擊者在DNS伺服器之前將虛假的響應交給用戶,從而欺騙客戶端去訪問惡意的網站。假設當提交給某個域名伺服器的域名解析請求的DNS報文包數據被截獲,然後按截獲者的意圖將一個虛假的IP地址作為應答信息返回給請求者。原始請求者就會把這個虛假的IP地址作為它所要請求的域名而進行訪問,這樣他就被欺騙到了別處而無妨連接想要訪問的那個域名。
DNS重定向
攻擊者將DNS名稱查詢重定向到惡意DNS伺服器上,被劫持域名的解析就完全在攻擊者的控制之下。
ARP欺騙
ARP攻擊就是通過偽造IP地址和MAC地址實現ARP欺騙,能夠在網路中產生大量的ARP通信量使網路阻塞,攻擊者只要持續不斷的發出偽造的ARP響應包就能更改目標主機ARP緩存中的IP-MAC條目,造成網路中斷或中間人攻擊。ARP攻擊主要是存在於區域網網路中,區域網中若有一台計算機感染ARP病毒,則感染該ARP病毒的系統將會試圖通過」ARP欺騙」手段截獲所在網路內其它計算機的通信信息,並因此造成網內其它計算機的通信故障。
ARP欺騙通常是在用戶局網中,造成用戶訪問域名的錯誤指向。如果IDC機房也被ARP病毒入侵後,則也可能出現攻擊者採用ARP包壓制正常主機、或者壓制DNS伺服器,以使訪問導向錯誤指向的情況。
本機劫持
本機的計算機系統被木馬或流氓軟體感染後,也可能會出現部分域名的訪問異常。如訪問掛馬或者釣魚站點、無法訪問等情況。本機DNS劫持方式包括hosts文件篡改、本機DNS劫持、SPI鏈注入、BHO插件等方式。
防範Arp攻擊、採用UDP隨機埠、建立靜態IP映射、運行最新版本的BIND、限制查詢、利用防火牆進行保護、利用交叉檢驗、使用TSIG機制、利用DNSSEC機制。
下面分別做出說明。
防範Arp攻擊
主要是針對區域網的DNS ID欺騙攻擊。如上所述,DNS ID欺騙是基於Arp欺騙的,防範了Arp欺騙攻擊,DNS ID欺騙攻擊是無法成功實施的。
採用UDP隨機埠
不再使用默認的53埠查詢,而是在UDP埠范圍內隨機選擇,可使對ID與埠組合的猜解難度增加6萬倍,從而降低使DNS緩存攻擊的成功率。
建立靜態IP映射
主要是指DNS伺服器對少部分重要網站或經常訪問的網站做靜態映射表,使對這些網站的訪問不再需要經過緩存或者向上一級的迭代查詢,從而在機制上杜絕DNS欺騙攻擊。
運行最新版本的BIND
使用最新版本的BIND,可以防止已知的針對DNS軟體的攻擊(如DoS攻擊、緩沖區溢出漏洞攻擊等)。應密切關注BIND安全公告,及時打好補丁。
限制查詢
在BIND8和BIND9之後,BIND的allow-query子句允許管理員對到來的查詢請求使用基於IP地址的控制策略,訪問控制列表可以對特定的區甚至是對該域名伺服器受到的任何查詢請求使用限制策略。如限制所有查詢、限制特定區的查詢、防止未授權的區的查詢、以最少許可權運行BIND等。
利用防火牆進行保護
這種保護方式可以使受保護的DNS伺服器不致遭受分布式拒絕服務攻擊、軟體漏洞攻擊。原理是在DNS伺服器主機上建立一個偽DNS伺服器共外部查詢,而在內部系統上建立一個真實的DNS伺服器專供內部使用。配置用戶的內部DNS客戶機,用於對內部伺服器的所有查詢,當內部主機訪問某個網站時,僅當內部DNS伺服器上沒有緩存記錄時,內部DNS才將查詢請求發送到外部DNS伺服器上,以保護內部伺服器免受攻擊。
利用交叉檢驗
這種保護方式可以從一定程度上防範DNS欺騙攻擊。原理是反向查詢已得到的IP地址對應的主機名,用該主機名查詢DNS伺服器對應於該主機名的IP地址,如果一致,則請求合法,否則非法。
使用TSIG機制
TSIF(事物簽名)機制(RFC2845)通過使用共享密鑰(Secret Key)及單向散列函數(One-way hash function)提供信息的驗證以及數據的完整性。當配置了TSIG後,DNS消息會增加一個TSIF記錄選項,該選項對DNS消息進行簽名,為消息發送者和接受者提供共享密鑰,從而保證了傳輸數據不被竊取和篡改。TSIP機制的部署步驟不做贅述,相關RFC文檔有詳細說明。
利用DNSSEC機制
為保證客戶機發送的解析請求的完整性,保護DNS伺服器及其中的信息,防止入侵者冒充合法用戶向他人提供虛假DNS信息,IETF(網路工程任務組)提出了DNS安全擴展(DNSSEC)的安全防範思想。
1、 DNSSEC工作原理
為提高DNS訪問數據包的安全性,DNSSEC在兼容現有協議的基礎上引入加密和認證體系,在每個區域都有一對區域級的密鑰對,密鑰對中的公鑰對域名記錄信息進行數字簽名,從而使支持DNSSEC的接收者可以校驗應答信息的可靠性。
BIND9.0支持DNS的安全擴展功能?。DNSSEC引入兩個全新的資源記錄類型:KEY和SIG,允許客戶端和域名伺服器對任何DNS數據來源進行密鑰驗證。DNSSEC主要依靠公鑰技術對於包含在DNS中的信息創建密鑰簽名,密鑰簽名通過計算出一個密鑰Hash數來提供DNS中數據的完整性,並將該Hash數封裝進行保護。私/公鑰對中的私鑰用來封裝Hash數,然後可以用公鑰把Hash數翻譯出來。如果這個翻譯出的Hash值匹配接收者計算出來的Hash數,那麼表明數據是完整的、沒有被篡改的。
2、 DNSSEC的實施
1)、創建一組密鑰對
#cd/vat/named
#dnssec -keygen -a RSA -b 512 -n ZONE qfnu.e.Kqfnu.e+002+27782
2)、生成密鑰記錄
#dnssec –makekeyset -t 172802 I
3)、發送密鑰文件到上一級域管理員,以供簽名使用
#dnssec -signkey keyset -qfnu.e Ke.+002+65396.private
然後將返回qfnu.e.signedkey文件
4)、在進行區域簽名之前,必須先將密鑰記錄添加到區域數據文件之中
#cat「$include Kqfnn.e.+002+27782.key」>>db.qfnu.e
5)、對區域進行簽名
#dnssec –signzone -O qfnu.e db.qfnu.e
6)、修改named.conf里的zone語句,系統將會載新的區域數據文件
3、 DNSSEC的不足
一方面,DNSSEC安全性雖然有所提高,但是標記和校驗必然產生額外的開銷,從而影響網路和伺服器的性能,簽名的數據量很大,家中了域名伺服器對骨幹網以及非骨幹網連接的負擔,同時簡明校驗也對CPU造成了很大的負擔,同時簽名和密鑰也佔用了佔用的磁碟空間以及RAM容量。
另一方面,安全性能方面的考慮。絕大多數的DNS軟體是美國出口的,它們為了通過美國政府的安全規定而被迫降低加密演算法和過程的安全強度。
第三方面,RSA演算法的使用。RSA擁有美國專利,與某些廠商和組織倡導的「免費/開放」目標有所沖突,但是同時又別無選擇。在成本方面也是部署中的一個問題。
5、是的 計算機演算法
計算機演算法是以一步接一步的方式來詳細描述計算機如何將輸入轉化為所要求的輸出的過程,或者說,演算法是對計算機上執行的計算過程的具體描述。
編輯本段演算法性質一個演算法必須具備以下性質: (1)演算法首先必須是正確的,即對於任意的一組輸入,包括合理的輸入與不合理的輸入,總能得到預期的輸出。如果一個演算法只是對合理的輸入才能得到預期的輸出,而在異常情況下卻無法預料輸出的結果,那麼它就不是正確的。 (2)演算法必須是由一系列具體步驟組成的,並且每一步都能夠被計算機所理解和執行,而不是抽象和模糊的概念。 (3)每個步驟都有確定的執行順序,即上一步在哪裡,下一步是什麼,都必須明確,無二義性。 (4)無論演算法有多麼復雜,都必須在有限步之後結束並終止運行,即演算法的步驟必須是有限的。在任何情況下,演算法都不能陷入無限循環中。 一個問題的解決方案可以有多種表達方式,但只有滿足以上4個條件的解才能稱之為演算法。編輯本段重要演算法A*搜尋演算法
俗稱A星演算法。這是一種在圖形平面上,有多個節點的路徑,求出最低通過成本的演算法。常用於游戲中的NPC的移動計算,或線上游戲的BOT的移動計算上。該演算法像Dijkstra演算法一樣,可以找到一條最短路徑;也像BFS一樣,進行啟發式的搜索。
Beam Search
束搜索(beam search)方法是解決優化問題的一種啟發式方法,它是在分枝定界方法基礎上發展起來的,它使用啟發式方法估計k個最好的路徑,僅從這k個路徑出發向下搜索,即每一層只有滿意的結點會被保留,其它的結點則被永久拋棄,從而比分枝定界法能大大節省運行時間。束搜索於20 世紀70年代中期首先被應用於人工智慧領域,1976 年Lowerre在其稱為HARPY的語音識別系統中第一次使用了束搜索方法,他的目標是並行地搜索幾個潛在的最優決策路徑以減少回溯,並快速地獲得一個解。
二分取中查找演算法
一種在有序數組中查找某一特定元素的搜索演算法。搜素過程從數組的中間元素開始,如果中間元素正好是要查找的元素,則搜素過程結束;如果某一特定元素大於或者小於中間元素,則在數組大於或小於中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。這種搜索演算法每一次比較都使搜索范圍縮小一半。
Branch and bound
分支定界(branch and bound)演算法是一種在問題的解空間樹上搜索問題的解的方法。但與回溯演算法不同,分支定界演算法採用廣度優先或最小耗費優先的方法搜索解空間樹,並且,在分支定界演算法中,每一個活結點只有一次機會成為擴展結點。
數據壓縮
數據壓縮是通過減少計算機中所存儲數據或者通信傳播中數據的冗餘度,達到增大數據密度,最終使數據的存儲空間減少的技術。數據壓縮在文件存儲和分布式系統領域有著十分廣泛的應用。數據壓縮也代表著尺寸媒介容量的增大和網路帶寬的擴展。
Diffie–Hellman密鑰協商
Diffie–Hellman key exchange,簡稱「D–H」,是一種安全協議。它可以讓雙方在完全沒有對方任何預先信息的條件下通過不安全信道建立起一個密鑰。這個密鑰可以在後續的通訊中作為對稱密鑰來加密通訊內容。
Dijkstra』s 演算法
迪科斯徹演算法(Dijkstra)是由荷蘭計算機科學家艾茲格·迪科斯徹(Edsger Wybe Dijkstra)發明的。演算法解決的是有向圖中單個源點到其他頂點的最短路徑問題。舉例來說,如果圖中的頂點表示城市,而邊上的權重表示著城市間開車行經的距離,迪科斯徹演算法可以用來找到兩個城市之間的最短路徑。
動態規劃
動態規劃是一種在數學和計算機科學中使用的,用於求解包含重疊子問題的最優化問題的方法。其基本思想是,將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解。動態規劃的思想是多種演算法的基礎,被廣泛應用於計算機科學和工程領域。比較著名的應用實例有:求解最短路徑問題,背包問題,項目管理,網路流優化等。這里也有一篇文章說得比較詳細。
歐幾里得演算法
在數學中,輾轉相除法,又稱歐幾里得演算法,是求最大公約數的演算法。輾轉相除法首次出現於歐幾里得的《幾何原本》(第VII卷,命題i和ii)中,而在中國則可以追溯至東漢出現的《九章算術》。
最大期望(EM)演算法
在統計計算中,最大期望(EM)演算法是在概率(probabilistic)模型中尋找參數最大似然估計的演算法,其中概率模型依賴於無法觀測的隱藏變數(Latent Variable)。最大期望經常用在機器學習和計算機視覺的數據聚類(Data Clustering)領域。最大期望演算法經過兩個步驟交替進行計算,第一步是計算期望(E),利用對隱藏變數的現有估計值,計算其最大似然估計值;第二步是最大化(M),最大化在 E 步上求得的最大似然值來計算參數的值。M 步上找到的參數估計值被用於下一個 E 步計算中,這個過程不斷交替進行。
快速傅里葉變換(FFT)
快速傅里葉變換(Fast Fourier Transform,FFT),是離散傅里葉變換的快速演算法,也可用於計算離散傅里葉變換的逆變換。快速傅里葉變換有廣泛的應用,如數字信號處理、計算大整數乘法、求解偏微分方程等等。
哈希函數
HashFunction是一種從任何一種數據中創建小的數字「指紋」的方法。該函數將數據打亂混合,重新創建一個叫做散列值的指紋。散列值通常用來代表一個短的隨機字母和數字組成的字元串。好的散列函數在輸入域中很少出現散列沖突。在散列表和數據處理中,不抑制沖突來區別數據,會使得資料庫記錄更難找到。
堆排序
Heapsort是指利用堆積樹(堆)這種數據結構所設計的一種排序演算法。堆積樹是一個近似完全二叉樹的結構,並同時滿足堆積屬性:即子結點的鍵值或索引總是小於(或者大於)它的父結點。
歸並排序
Merge sort是建立在歸並操作上的一種有效的排序演算法。該演算法是採用分治法(Divide and Conquer)的一個非常典型的應用。
RANSAC 演算法
RANSAC 是」RANdom SAmpleConsensus」的縮寫。該演算法是用於從一組觀測數據中估計數學模型參數的迭代方法,由Fischler and Bolles在1981提出,它是一種非確定性演算法,因為它只能以一定的概率得到合理的結果,隨著迭代次數的增加,這種概率是增加的。該演算法的基本假設是觀測數據集中存在」inliers」(那些對模型參數估計起到支持作用的點)和」outliers」(不符合模型的點),並且這組觀測數據受到雜訊影響。RANSAC 假設給定一組」inliers」數據就能夠得到最優的符合這組點的模型。
RSA加密演演算法
這是一個公鑰加密演算法,也是世界上第一個適合用來做簽名的演算法。今天的RSA已經專利失效,其被廣泛地用於電子商務加密,大家都相信,只要密鑰足夠長,這個演算法就會是安全的。
並查集Union-find
並查集是一種樹型的數據結構,用於處理一些不相交集合(Disjoint Sets)的合並及查詢問題。常常在使用中以森林來表示。
Viterbi algorithm
尋找最可能的隱藏狀態序列(Finding most probable sequence of hidden states)。編輯本段演算法特點1.有窮性。一個演算法應包含有限的操作步驟,而不能是無限的。事實上「有窮性」往往指「在合理的范圍之內」。如果讓計算機執行一個歷時1000年才結束的演算法,這雖然是有窮的,但超過了合理的限度,人們不把他是為有效演算法。 2. 確定性。演算法中的每一個步驟都應當是確定的,而不應當是含糊的、模稜兩可的。演算法中的每一個步驟應當不致被解釋成不同的含義,而應是十分明確的。也就是說,演算法的含義應當是唯一的,而不應當產生「歧義性」。 3. 有零個或多個輸入、所謂輸入是指在執行演算法是需要從外界取得必要的信息。 4. 有一個或多個輸出。演算法的目的是為了求解,沒有輸出的演算法是沒有意義的。 5.有效性。 演算法中的每一個 步驟都應當能有效的執行。並得到確定的結果。編輯本段演算法與程序雖然演算法與計算機程序密切相關,但二者也存在區別:計算機程序是演算法的一個實例,是將演算法通過某種計算機語言表達出來的具體形式;同一個演算法可以用任何一種計算機語言來表達。 演算法列表 圖論 路徑問題 0/1邊權最短路徑 BFS 非負邊權最短路徑(Dijkstra) 可以用Dijkstra解決問題的特徵 負邊權最短路徑 Bellman-Ford Bellman-Ford的Yen-氏優化 差分約束系統 Floyd 廣義路徑問題 傳遞閉包 極小極大距離 / 極大極小距離 Euler Path / Tour 圈套圈演算法 混合圖的 Euler Path / Tour Hamilton Path / Tour 特殊圖的Hamilton Path / Tour 構造 生成樹問題 最小生成樹 第k小生成樹 最優比率生成樹 0/1分數規劃 度限制生成樹 連通性問題 強大的DFS演算法 無向圖連通性 割點 割邊 二連通分支 有向圖連通性 強連通分支 2-SAT 最小點基 有向無環圖 拓撲排序 有向無環圖與動態規劃的關系 二分圖匹配問題 一般圖問題與二分圖問題的轉換思路 最大匹配 有向圖的最小路徑覆蓋 0 / 1矩陣的最小覆蓋 完備匹配 最優匹配 穩定婚姻 網路流問題 網路流模型的簡單特徵和與線性規劃的關系 最大流最小割定理 最大流問題 有上下界的最大流問題 循環流 最小費用最大流 / 最大費用最大流 弦圖的性質和判定 組合數學 解決組合數學問題時常用的思想 逼近 遞推 / 動態規劃 概率問題 Polya定理 計算幾何 / 解析幾何 計算幾何的核心:叉積 / 面積 解析幾何的主力:復數 基本形 點 直線,線段 多邊形 凸多邊形 / 凸包 凸包演算法的引進,卷包裹法 Graham掃描法 水平序的引進,共線凸包的補丁 完美凸包演算法 相關判定 兩直線相交 兩線段相交 點在任意多邊形內的判定 點在凸多邊形內的判定 經典問題 最小外接圓 近似O(n)的最小外接圓演算法 點集直徑 旋轉卡殼,對踵點 多邊形的三角剖分 數學 / 數論 最大公約數 Euclid演算法 擴展的Euclid演算法 同餘方程 / 二元一次不定方程 同餘方程組 線性方程組 高斯消元法 解mod 2域上的線性方程組 整系數方程組的精確解法 矩陣 行列式的計算 利用矩陣乘法快速計算遞推關系 分數 分數樹 連分數逼近 數論計算 求N的約數個數 求phi(N) 求約數和 快速數論變換 …… 素數問題 概率判素演算法 概率因子分解 數據結構 組織結構 二叉堆 左偏樹 二項樹 勝者樹 跳躍表 樣式圖標 斜堆 reap 統計結構 樹狀數組 虛二叉樹 線段樹 矩形面積並 圓形面積並 關系結構 Hash表 並查集 路徑壓縮思想的應用 STL中的數據結構 vector deque set / map 動態規劃 / 記憶化搜索 動態規劃和記憶化搜索在思考方式上的區別 最長子序列系列問題 最長不下降子序列 最長公共子序列 一類NP問題的動態規劃解法 樹型動態規劃 背包問題 動態規劃的優化 四邊形不等式 函數的凸凹性 狀態設計 規劃方向 線性規劃 常用思想 二分 最小表示法 串 KMP Trie結構 後綴樹/後綴數組 LCA/RMQ 有限狀態自動機理論 排序 選擇/冒泡 快速排序 堆排序 歸並排序 基數排序 拓撲排序 排序網路
擴展閱讀:
1
《計算機演算法設計與分析導論》朱清新等編著 人民郵電出版社
開放分類:
計算機,演算法
6、Rsa是什麼意思
RSA加密演算法是一種非對稱加密演算法。在公開密鑰加密和電子商業中RSA被廣泛使用。RSA是1977年由羅納德·李維斯特(Ron Rivest)、阿迪·薩莫爾(Adi Shamir)和倫納德·阿德曼(Leonard Adleman)一起提出的。當時他們三人都在麻省理工學院工作。RSA就是他們三人姓氏開頭字母拼在一起組成的。
1973年,在英國政府通訊總部工作的數學家克利福德·柯克斯(Clifford Cocks)在一個內部文件中提出了一個相同的演算法,但他的發現被列入機密,一直到1997年才被發表。
(6)rsa專利擴展資料
RSA的安全性依賴於大數分解,但是否等同於大數分解一直未能得到理論上的證明,因為沒有證明破解RSA就一定需要作大數分解。
假設存在一種無須分解大數的演算法,那它肯定可以修改成為大數分解演算法。 RSA 的一些變種演算法已被證明等價於大數分解。不管怎樣,分解n是最顯然的攻擊方法。人們已能分解多個十進制位的大素數。因此,模數n必須選大一些,因具體適用情況而定。
7、數據的演算法?都有哪些……
A*搜尋演算法
俗稱A星演算法。這是一種在圖形平面上,有多個節點的路徑,求出最低通過成本的演算法。常用於游戲中的 NPC的移動計算,或線上游戲的 BOT的移動計算上。該演算法像 Dijkstra演算法一樣,可以找到一條最短路徑;也像BFS一樣,進行啟發式的搜索。
Beam Search
束搜索(beam search)方法是解決優化問題的一種啟發式方法,它是在分枝定界方法基礎上發展起來的,它使用啟發式方法估計k個最好的路徑,僅從這k個路徑出發向下搜索,即每一層只有滿意的結點會被保留,其它的結點則被永久拋棄,從而比分枝定界法能大大節省運行時間。束搜索於20 世紀70年代中期首先被應用於 人工智慧領域,1976 年Lowerre在其稱為 HARPY的語音識別系統中第一次使用了束搜索方法。他的目標是並行地搜索幾個潛在的最優決策路徑以減少回溯,並快速地獲得一個解。
二分取中查找演算法
一種在有序數組中查找某一特定元素的搜索演算法。搜素過程從數組的中間元素開始,如果中間元素正好是要查找的元素,則搜素過程結束;如果某一特定元素大於或者小於中間元素,則在數組大於或小於中間元素的那一半中查找,而且跟開始一樣從中間元素開始比較。這種搜索演算法每一次比較都使搜索范圍縮小一半。
Branch and bound
分支定界演算法是一種在問題的解空間樹上搜索問題的解的方法。但與回溯演算法不同,分支定界演算法採用廣度優先或最小耗費優先的方法搜索解空間樹,並且,在分支定界演算法中,每一個活結點只有一次機會成為擴展結點。
數據壓縮
數據壓縮是通過減少計算機中所存儲數據或者通信傳播中數據的冗餘度,達到增大數據密度,最終使數據的存儲空間減少的技術。數據壓縮在文件存儲和分布式系統領域有著十分廣泛的應用。數據壓縮也代表著尺寸媒介容量的增大和網路帶寬的擴展。
Diffie–Hellman密鑰協商
Diffie–Hellman key exchange,簡稱「D–H」,是一種安全協議。它可以讓雙方在完全沒有對方任何預先信息的條件下通過不安全信道建立起一個密鑰。這個密鑰可以在後續的通訊中作為對稱密鑰來加密通訊內容。
Dijkstra』s 演算法
迪科斯徹演算法(Dijkstra)是由荷蘭計算機科學家艾茲格·迪科斯徹發明的。演算法解決的是有向圖中單個源點到其他頂點的最短路徑問題。舉例來說,如果圖中的頂點表示城市,而邊上的權重表示著城市間開車行經的距離,迪科斯徹演算法可以用來找到兩個城市之間的最短路徑。
動態規劃
動態規劃是一種在 數學和計算機科學中使用的,用於求解包含重疊子問題的最優化問題的方法。其基本思想是,將原問題分解為相似的子問題,在求解的過程中通過子問題的解求出原問題的解。 動態規劃的思想是多種演算法的基礎,被廣泛應用於計算機科學和工程領域。比較著名的應用實例有:求解最短路徑問題,背包問題,項目管理,網路流優化等。這里也有一篇文章說得比較詳細。
歐幾里得演算法
在 數學中,輾轉相除法,又稱 歐幾里得演算法,是求 最大公約數的演算法。輾轉相除法首次出現於 歐幾里得的《幾何原本》(第VII卷,命題i和ii)中,而在中國則可以追溯至 東漢出現的《九章算術》。
快速傅里葉變換(FFT)
快速傅里葉變換(Fast Fourier Transform,FFT),是離散傅里葉變換的快速演算法,也可用於計算離散傅里葉變換的逆變換。快速傅里葉變換有廣泛的應用,如數字信號處理、計算大整數乘法、求解偏微分方程等等。
哈希函數
HashFunction是一種從任何一種數據中創建小的數字「指紋」的方法。該 函數將數據打亂混合,重新創建一個叫做散列值的指紋。散列值通常用來代表一個短的隨機字母和數字組成的字元串。好的散列 函數在輸入域中很少出現散列沖突。在散列表和數據處理中,不抑制沖突來區別數據,會使得資料庫記錄更難找到。
堆排序
Heapsort是指利用堆積樹(堆)這種 數據結構所設計的一種排序演算法。堆積樹是一個近似完全二叉樹的結構,並同時滿足堆積屬性:即子結點的鍵值或索引總是小於(或者大於)它的父結點。
歸並排序
Merge sort是建立在歸並操作上的一種有效的排序演算法。該演算法是採用分治法(Divide and Conquer)的一個非常典型的應用。
RANSAC 演算法
RANSAC 是」RANdom SAmpleConsensus」的縮寫。該演算法是用於從一組觀測數據中估計 數學模型參數的迭代方法,由Fischler and Bolles在1981提出,它是一種非確定性演算法,因為它只能以一定的概率得到合理的結果,隨著迭代次數的增加,這種概率是增加的。該演算法的基本假設是觀測數據集中存在」inliers」(那些對模型參數估計起到支持作用的點)和」outliers」(不符合模型的點),並且這組觀測數據受到雜訊影響。RANSAC 假設給定一組」inliers」數據就能夠得到最優的符合這組點的模型。
RSA加密演演算法
這是一個公鑰加密演算法,也是世界上第一個適合用來做簽名的演算法。今天的RSA已經 專利失效,其被廣泛地用於 電子商務加密,大家都相信,只要密鑰足夠長,這個演算法就會是安全的。
並查集Union-find
並查集是一種樹型的 數據結構,用於處理一些不相交集合(Disjoint Sets)的合並及查詢問題。常常在使用中以森林來表示。
Viterbi algorithm
尋找最可能的隱藏狀態序列
等等這些,演算法很多。
8、telnet,ssh1和ssh2的區別
簡言之:Telent是明碼傳輸,SSH是加密傳輸。
使用Telnet這個用來訪問遠程計算機的TCP/IP協議以控制你的網路設備相當於在離開某個建築時大喊你的用戶名和口令。很快會有人進行監聽,並且他們會利用你安全意識的缺乏。傳統的網路服務程序如:ftp、pop和telnet在本質上都是不安全的,因為它們在網路上用明文傳送口令和數據,別有用心的人非常容易就可以截獲這些口令和數據。而且,這些服務程序的安全驗證方式也是有其弱點的,就是很容易受到「中間人」(man-in-the-middle)這種方式的攻擊。所謂「中間人」的攻擊方式,就是「中間人」冒充真正的伺服器接收你的傳給伺服器的數據,然後再冒充你把數據傳給真正的伺服器。伺服器和你之間的數據傳送被「中間人」一轉手做了手腳之後,就會出現很嚴重的問題。
SSH是替代Telnet和其他遠程式控制制台管理應用程序的行業標准。SSH命令是加密的並以幾種方式進行保密。SSH有很多功能,它既可以代替telnet,又可以為ftp、pop、甚至ppp提供一個安全的「通道」。SSH(Secure SHell)到目前為止有兩個不兼容的版本——SSH1和SSH2。
SSH1又分為1.3和1.5兩個版本。SSH1採用DES、3DES、Blowfish和RC4等對稱加密演算法保護數據安全傳輸,而對稱加密演算法的密鑰是通過非對稱加密演算法(RSA)來完成交換的。SSH1使用循環冗餘校驗碼(CRC)來保證數據的完整性,但是後來發現這種方法有缺陷。
SSH2避免了RSA的專利問題,並修補了CRC的缺陷。SSH2用數字簽名演算法(DSA)和Diffie-Hellman(DH)演算法代替RSA來完成對稱密鑰的交換,用消息證實代碼(HMAC)來代替CRC。同時SSH2增加了AES和Twofish等對稱加密演算法。
9、背包變體是什麼?
很復雜,反正我看不懂^
RSA
1977 年,即,Diffie-Hellman 的論文發表一年後,MIT 的三名研究人員根據這一想法開發了一種實用方法。這就是 RSA,它是以三位開發人員 — Ron Rivest、Adi Shamir 和 Leonard Adelman — 姓的首字母大寫命名的,而且 RSA 可能是使用最廣泛的公鑰密碼體制。1983 年給 RSA 在美國申請了專利,並正式地被採用為標准,雖然到目前為止,它的出口仍受到限制,但在美國以外還是一直廣泛地用於本地開發的實現。
與其它此類系統一樣,RSA 使用很大的質數來構造密鑰對。每個密鑰對共享兩個質數的乘積,即模數,但是每個密鑰對還具有特定的指數。RSA 實驗室對 RSA 密碼體制的原理做了如下說明:
「用兩個很大的質數,p 和 q,計算它們的乘積 n = pq;n 是模數。選擇一個比 n 小的數 e,它與 (p - 1)(q - 1) 互為質數,即,除了 1 以外,e 和 (p - 1)(q - 1) 沒有其它的公因數。找到另一個數 d,使 (ed - 1) 能被 (p - 1)(q - 1) 整除。值 e 和 d 分別稱為公共指數和私有指數。公鑰是這一對數 (n, e);私鑰是這一對數 (n, d)。」
知道公鑰可以得到獲取私鑰的途徑,但是這取決於將模數因式分解成組成它的質數。這很困難,通過選擇足夠長的密鑰,可以使其基本上不可能實現。需要考慮的是模數的長度;RSA 實驗室目前建議:對於普通公司使用的密鑰大小為 1024 位,對於極其重要的資料,使用雙倍大小,即 2048 位。對於日常使用,768 位的密鑰長度已足夠,因為使用當前技術無法容易地破解它。保護資料的成本總是需要和資料的價值以及攻破保護的成本是否過高結合起來考慮。RSA 實驗室提到了最近對 RSA 密鑰長度安全性的研究,這種安全性是基於在 1995 年可用的因式分解技術。這個研究表明用 8 個月的努力花費少於一百萬美元可能對 512 位的密鑰進行因式分解。事實上,在 1999 年,作為常規 RSA 安全性挑戰的一部分,用了 7 個月時間完成了對特定 RSA 512 位數(稱為 RSA-155)的因式分解。
記住:對於提供的安全性范圍,這里給出的各種數字都是平均值,有時識別一個特定的私鑰可能會快得多,這一點也很重要。同樣,提供的安全性假設是基於對質數進行因式分解是很困難的。如果發現了能使因式分解變得簡單的新數學技術,這種假設就會發生變化,那時 RSA 提供的安全性和類似的演算法就可能立即變得毫無價值。
還請注意,密鑰長度增加時會影響加密/解密的速度,所以這里有一個權衡。將模數加倍將使得使用公鑰的操作時間大致增加為原來的 4 倍,而用私鑰加密/解密所需的時間增加為原來的 8 倍。進一步說,當模數加倍時,生成密鑰的時間平均將增加為原來的 16 倍。如果計算能力持續快速地提高,並且事實上非對稱密碼術通常用於簡短文本,因此在實踐運用中這不是問題。
其它非對稱密碼體制
以其開發人員的名字命名的 ElGamal 系統基於離散對數問題,並有加密和簽名變體,而數字簽名演算法(DSA)部分基於 ElGamal。該系統看來與 RSA 一樣安全,但是通常更慢,在加密期間擴展消息的時間是 RSA 的兩倍。這些限制不太影響該演算法在簽名中的使用。
其它體制包括 1978 年第一次發布的 Merkle-Hellman 背包(knapsack)密碼體制、1984 年第一次發布的 Chor-Rivest 背包密碼體制及其 1988 年的修訂版。還有在澳大利亞和紐西蘭開發的 LUC 公鑰系統。McEliece 公鑰加密演算法基於代數編碼理論,並使用一類稱為 Goppa 代碼的糾錯碼。這些代碼提供快速解碼,但使用的密鑰大小約有半兆,並且加密時對消息文本的擴展也很大。
一組更先進的公鑰密碼體制是在八十年代中期提出稱為橢圓曲線的密碼體制,現在引起了人們的興趣。這些體制基於數字理論和代數幾何學中的數學構造,並通常定義在有限域上。這些體制盡管使用較短的密鑰長度,但似乎有可能提供與現有系統類似的安全性,有些則可能在移動計算或基於智能卡的系統中特別有用。RSA 實驗室提出使用 160 位密鑰長度的橢圓曲線密碼體制可能提供與使用 1024 位密鑰的 RSA 幾乎相同的安全性。然而,問題是:對於某些尚未完全開發的專門攻擊來說,橢圓曲線密碼體制可能是脆弱的。