離散數學 密碼學

2021-10-03 17:26:09 字數 930 閱讀 4261

已知最早使用密碼學的人之一是尤利烏斯 凱撒,他通過將字母表中的字母向後平移三個單位長度來實現加密(模26的平移),我們使用數學語言描述如下。

我們使用乙個列舉型別0-25來代表26個字母,使用符號z表示,定義乙個函式f,定義域為非負整數p,我們有

相對地,解密的過程就是將字母向前平移三個單位實現,同樣是模26計算

同理,我們在加密和解密過程中可以規定任意的平移長度,令平移長度為k,則得到

下面使用c語言來描述這個加密解密過程。我們令平移長度k=3,將"hello"進行加密和解密

#include #include #define maxsize 10

//加密函式,返回 加密後的字串

//注意,因為是字元是ascii碼值,所以我們在加密過程中需要進行一定的變化

char *encryption(char *str, int k, int length) else if(str[i]>=97 && str[i]<=122) else

} return encoding;

} //解密函式

char *decryption(char *str, int k, int length) else if(str[i]>=97 && str[i]<=122) else

} return encoding;

} int main()

執行的結果如下

rsa加密演算法是一種非對稱加密演算法,當兩台主機進行rsa加密通訊的時候,需要乙個公鑰e和乙個私鑰d。

加密解密按照如下步驟進行:

下面我們用公式描述一下加密解密的過程

由步驟4)我們得到

由(3)和(4)得到

由費公尺-尤拉定理得到

聯立(5)(6)兩式得到

化簡(7)式得到

下面我們舉乙個rsa加密解密的例子

密碼學數學基礎

設是代數系統,其中g是非空集合,在g中定義了乙個二元運算 即對g中任意a,b有g中唯一元素 記為a b 與之對應 且滿足如下規律 1.封閉性。對任意a,b g,總有a b g 2.結合律。a b c a b c,對任意的a,b,c g 3.恆元 存在e g,使得e a a 對任意的a g 4.逆元 ...

離散數學 筆記

1.復合命題的真值只取決於各原子命題的真值,而與它們的內容 含義無關,與原子命題之間是否有關係無關。2.命題公式 1 重言式 2 矛盾式 3 可滿足式 1.重言式 給定一命題公式,若無論對分量作怎樣的指派,其對應的真值永為真,則稱該命題為重言式或永真式 2.給定一命題公式,若無論對分量作怎樣的指派,...

《離散數學》關係

為什麼要研究乙個關係的演算法?我總是在想這個 難道是現實世界關係的模型對於我們來說,都是數學中研究的關係 關係把世界連線為了乙個巨大的網 一,關係的定義以及性質 從數學的角度來說,關係是笛卡兒的子集,就是乙個二維表,還可以是乙個矩陣,乙個有向圖。關係有一些性質,自反 a,b有相同的父母 對稱 a,b...