演算法的開銷
1. 加密技術不能實現
加密技術不能實現基於ip頭信息的包過濾。
現代對稱密鑰加密技術可以分為流密碼加密和分組密碼加密兩種。流密碼加密技術推廣了一次性密碼本的方案,只是為了密鑰的可管理性犧牲了可證明的安全性。
分組密碼加密技術從某種意義上看是經典的電報粗頃密碼本方案的推廣。在分組密碼加密方案中,密鑰決定褲凳乎了密碼本,只要密鑰保持不變,就意味著使用同一個密碼本。反過來當密鑰改變時,就相當於選擇了一個不同的密碼本。
(1)演算法的開銷擴展閱讀:
加密技術介紹如下:
加密演算法的加密需要符合機密性:保證數據即使被盜取,小偷也不知道是啥。保證數據在傳輸過程中即使被劫持修改,接收方能夠發現信息已被截取,而選擇換掉。保證加密演算法的開銷、復雜度都在可用范圍。
結合上述訴求,加密演算法的發展主要經歷了古典密碼和現代密碼兩個重要時期。標志著加密演算法的重心轉移往應用數學上的轉移。於是,逐漸衍生出了當今重要的三類加密演算法胡悉:非對稱加密、對稱加密以及哈希演算法。
2. 一個演算法的『計算量』該如何量化
這問題提的好。衡量演算法開銷通常使用O()運算符由於同一個演算法運行於不同的機器上所耗費的實際時間是不同的,所以不能使用實際時間單位衡量演算法運行效率,而應使用邏輯單位。描述演算法復雜度的參數為演算法的輸入數據規模,通常用n來表示,那麼演算法的復雜度可表示為一個關於n的函數。通常最常用的描述演算法復雜度的符號為O符號,即將復雜度表示為O(f(n))。其中f(n)用函數形式描述演算法執行命令條數與輸入規模n的關系,而O()起到估算化簡的作用。比如某個演算法經過邏輯分析後,其指令數可表示為f(n)=8n^2+10n+500,那麼可以使用O(f(n))來簡化其表達,O()符號運算性質有多條,總體來說就是保留增長率最高的項且忽略常數系數,上面的表達式化簡結果為O(n^2)。當然O()符號不能完美描述演算法開銷,因為它忽略了常數的影響,當某些項前的常數系數非常非常大時,會對演算法復雜度的判斷造成誤差,這就要具體問題具體分析了。下面簡單說一下具體如何分析。for (i = 0;ik *= i;}這段代碼每次循環中執行一次乘法兩次賦值(假定乘法使用單周期乘法器實現),循環開始執行一次賦值,那麼共計執行指令數3n+1,即復雜度為O(n)。for (i = 0;ifor (j = 0;jk += i * j;}循環嵌套時,內層循環執行3n+1條指令,外層循環n次,共n*(3n+1)+1=3n^2 + n +1條指令,即O(n^2)。
3. 演算法分析的目的是什麼
回答如下:
目的是評價演算法的效率,通過評價可以選用更加好更加適合的演算法來完成。