資訊加密試驗(基於C的乙個簡單的對稱加密演算法實現)

2021-05-24 22:30:01 字數 1287 閱讀 7619

1實驗題目:資訊加密實驗

2實驗意義

本實驗教學旨在加強實踐環節,培養學生動手能力,使學生學完課程

後,對密碼學的原理、思想和演算法都有清晰、深入的理解。讓學生通過密碼

演算法的程式設計實現,更好地掌握密碼演算法設計的機理和方法。同時,掌握

密碼系統設計的基本方法和步驟環節,理解密碼學在資訊保安的地位,了解

密碼學領域的新進展、新應用。

3軟硬體環境

一台裝有

c 語言編譯工具的計算機。

4實驗步驟(1

)選擇或自己設計一種加密演算法。 (

2)編寫程式實現這種演算法。 (

3)使用明文和金鑰進行測試,與預定方案對比加密後的秘文是否符 合。

(4)使用對密文進行解密並與原明文對比是否相同

(5)進行時間和空間複雜度的分析與計算。

這個是老師布置的題目,搞了一下午終於完成了。趁著在頭腦中還新鮮趕緊總結一下。試驗並不是很難,但是這次試驗牽扯到了以前學過的《資料結構》。因為間隔太久難免生疏,首先再次搞清楚時間複雜度和空間複雜度的概念。時間複雜度——演算法的時間度量,記作:  t(n)=o( f(n) ) .t(n)是演算法中原操作重複執行的次數是規模 n 的函式(也就是演算法中語句總的執行次數)。畢竟多數時候要精確計算 t(n)是很困難的,所以引入了漸進時間複雜度的概念。而且可以通過在數量級上來估計乙個演算法的執行時間來達到分析演算法的目的。f(n)一般是演算法中最大的語句頻度。這裡用「o」(order of magnitude)表示數量級.資料結構中常用的時間複雜度有以下7個:

o(1)常數型  o(n)線性型  o(n^2)平方型  o(n^3)立方型

o(2^n)指數型  o(log 2 n)對數型  o(nlog 2 n)二維型。

空間複雜度與時間複雜度類似,空間複雜度是指演算法在計算機內執行時所需儲存空間的度量。記作: s(n)=o(f(n)) 我們一般所討論的是除正常占用記憶體開銷外的輔助儲存單元規模。

本次除錯中還有一些小意外,一開始除錯沒法通過。我仔細反覆看了又看,最後才意識到是演算法的對稱性出了問題。因為我才用的是對稱加密,加密和解密的過程一定要保持對稱。比如加密時左移32位,解密時一定要右移32位。以後一定要謹記。 

C 寫乙個簡單的加密程式

des對稱加密,是一種比較傳統的加密方式,其加密運算 解密運算使用的是同樣的金鑰,資訊的傳送者和資訊的接收者在進行資訊的傳輸與處理時,必須共同持有該密碼 稱為對稱密碼 是一種對稱加密演算法。des 使用乙個 56 位的金鑰以及附加的 8 位奇偶校驗位,產生最大 64 位的分組大小。這是乙個迭代的分組...

乙個簡單的加密 解密方法

private function encryptstring strstring dim charhexset,intstringlen,strtemp,strraw,i,intkey,intoffset randomize timer intkey round rnd 1000000 100000...

乙個簡單的XOR加密方法

主要用來加密流資料,因為aes太慢需求也不需要很重的加密,所有選擇用xor加密,但是發現乙個問題,就是加密內容是一竄json都是以 開頭,xor加密太簡單導致很容易就猜出密碼,所以改進了一下,用key的ascii碼合計做開頭位置開頭位移,以及最後反覆多次加密來解決 加密 key金鑰 data資料 f...