張大雷 孫淮寧 史學(xué)梅 馬夢珂
摘? 要: 網(wǎng)絡(luò)信息安全是計算機(jī)相關(guān)專業(yè)的一門重要課程,其中的密碼學(xué)部分涉及到數(shù)論的相關(guān)知識,抽象而難以理解。Wolfram Alpha是一款在線知識型搜索引擎,兼具強(qiáng)大的功能和良好的易用性。文章介紹網(wǎng)絡(luò)信息安全課程涉及到的基礎(chǔ)數(shù)論知識,結(jié)合實(shí)例展示用Wolfram Alpha解決相關(guān)問題的方法,以期通過Wolfram Alpha的使用來提升教學(xué)效果。
關(guān)鍵詞: Wolfram Alpha; 網(wǎng)絡(luò)信息安全; 數(shù)論; 密碼學(xué)
中圖分類號:TP393? ? ? ? ? 文獻(xiàn)標(biāo)識碼:A? ? ?文章編號:1006-8228(2021)09-32-02
Abstract: Network information security is an important course for computer-related specialties. The cryptography part involves the relevant knowledge of number theory, which is abstract and difficult to understand. Wolfram Alpha is an online knowledge search engine with powerful functions and good ease of use. This paper introduces the basic number theory knowledge involved in the network information security course, and shows the method of solving relevant problems with Wolfram Alpha by actual examples, in order to improve the teaching effect through the use of Wolfram Alpha.
Key words: WolframAlpha; network information security; number theory; cryptography
0 引言
Wolfram Alpha(以下簡稱WA)是一款在線知識型搜索引擎,除了支持用命令解決各類問題外,還支持自然語言搜索,兼具強(qiáng)大的功能和良好的易用性[1-2]。WA與數(shù)學(xué)軟件Mathematica出自于同一家公司,兩者語法完全兼容[3],因此WA跟Mathematica一樣,同樣可以用于輔助數(shù)學(xué)課程的教學(xué)[4],并且功能與MATLAB軟件相當(dāng)[5-7]
網(wǎng)絡(luò)信息安全課程是網(wǎng)絡(luò)工程專業(yè)的核心課程,由于其中的密碼學(xué)部分涉及到許多數(shù)論相關(guān)的知識,學(xué)生普遍感到比較抽象,難以理解[8]。
隨著4G/5G網(wǎng)絡(luò)的發(fā)展,帶寬不再是制約上網(wǎng)的因素。此外,智能手機(jī)的普及為高校課程的改革提供了天然的硬件資源。
本文首先介紹網(wǎng)絡(luò)信息安全課程涉及到的基礎(chǔ)數(shù)論知識[9],然后結(jié)合實(shí)例展示用WA解決相關(guān)問題的方法。
1 數(shù)論基礎(chǔ)
1.1 模運(yùn)算
模運(yùn)算也就是通常所說的求余運(yùn)算,該運(yùn)算包含兩個參數(shù),就是求一個整數(shù)除以另一個整數(shù)的余數(shù)。模運(yùn)算是整個數(shù)論大廈的基石,因?yàn)閿?shù)論的研究對象就是整數(shù)。計算機(jī)編程語言中通常用%表示模運(yùn)算,數(shù)學(xué)上一般用mod表示求余。
1.2 模冪運(yùn)算
模冪運(yùn)算是一種混合運(yùn)算,先求冪運(yùn)算,再做模運(yùn)算,所以該運(yùn)算包含三個參數(shù),分別是底數(shù)、指數(shù)和除數(shù),例如abmod c表示的即是模冪運(yùn)算。模冪運(yùn)算是密碼學(xué)中眾多公鑰密碼算法中最常見的運(yùn)算之一,如RSA算法,Diffie-Hellman算法等等。
1.3 模逆運(yùn)算
模逆運(yùn)算可以看作是模冪運(yùn)算的特例,也就是指數(shù)為 -1的情況,例如a-1mod c表示的即是模逆運(yùn)算。RSA算法中也用到了模逆運(yùn)算。
1.4 歐拉函數(shù)
數(shù)論中,歐拉函數(shù)是指小于或等于n的正整數(shù)中與n互質(zhì)的數(shù)的數(shù)目,也稱j函數(shù)。歐拉定理中就出現(xiàn)了歐拉函數(shù),而歐拉定理是RSA算法正確性的基礎(chǔ)。
1.5 原根
原根是數(shù)論中的基本概念[10]。設(shè)a, m為正整數(shù),若a滿足對模m的階等于歐拉函數(shù)[φ(m)],那么稱a為模m的原根。原根的使用確保了Diffie-Hellman算法的正確性。
1.6 中國剩余定理
中國剩余定理是數(shù)論中的一個重要定理,也是中國古代數(shù)學(xué)的精華之一。“有物不知其數(shù),三三數(shù)之剩二,五五數(shù)之剩三,七七數(shù)之剩二。問物幾何?”即,一個整數(shù)除以三余二,除以五余三,除以七余二,求這個整數(shù)。中國剩余定理在密碼學(xué)中有著極為廣泛的應(yīng)用。
1.7 MD5計算
MD5是一種廣泛應(yīng)用的HASH函數(shù),對于任意輸入,可以產(chǎn)生128 位的HASH值,主要用于數(shù)據(jù)的完整性檢測。
1.8 二次剩余計算
設(shè)m為正整數(shù),若同余方程[x2≡a(mod m)]有解,則稱a為模m的平方剩余或二次剩余,否則稱a為模m的二次非剩余,其中a, m互質(zhì)。根據(jù)歐拉準(zhǔn)則,p是奇質(zhì)數(shù)且p不能整除d,d是模p的二次剩余,當(dāng)且僅當(dāng)[dp-12≡1(mod p)]。
2 WA命令
2.1 模運(yùn)算
在WA中,mod函數(shù)或%是用于模運(yùn)算的。它們有兩個參數(shù),第一個是被除數(shù),第二個是除數(shù),結(jié)果是余數(shù)。例如要計算11 mod 4,在搜索框中輸入命令11%4,或者輸入命令11 mod 4,輸出3。
2.2 模冪運(yùn)算
模冪運(yùn)算需要用到的函數(shù)是PowerMod,該函數(shù)有三個參數(shù),分別是底數(shù)、指數(shù)和除數(shù),輸出結(jié)果就是這三個參數(shù)的模冪運(yùn)算的結(jié)果。例如要計算34 mod 11,在搜索框中輸入命令PowerMod(3, 4, 11),輸出4。
2.3 模逆運(yùn)算
模逆運(yùn)算既然可以看作模冪運(yùn)算的特例,所以也可以用PowerMod函數(shù),或者直接用mod函數(shù)都可以計算。例如要計算49-1 mod 53,在搜索框中輸入命令PowerMod(49, -1, 53)或49^ -1 mod 53,都是輸出13。
2.4 歐拉函數(shù)
phi函數(shù)用于計算歐拉函數(shù),例如要計算歐拉函數(shù)值phi(10),在搜索框中輸入命令phi(10),輸出4。
2.5 原根
primitive roots函數(shù)用于計算原根,例如要計算模11的原根,在搜索框中輸入命令primitive roots 11,輸出{2, 6, 7, 8}。
2.6 中國剩余定理
ChineseRemainder用于求解一次同余方程組,它的第一組參數(shù)是方程組中的余數(shù),第二組參數(shù)是方程組中的除數(shù),例如求解1.6節(jié)中的方程組,只需要輸入命令ChineseRemainder[{2, 3, 2}, {3, 5, 7}],輸出23。
2.7 MD5計算
md5函數(shù)用于計算某個輸入?yún)?shù)的HASH值,例如求字符串“abc”的MD5的HASH值,輸入命令md5 abc,會給出十進(jìn)制與十六進(jìn)制的結(jié)果,其中十六進(jìn)制形式為:900150983CD24FB0D6963F7D28E17F72。
2.8 二次剩余計算
根據(jù)歐拉準(zhǔn)則,計算二次剩余可以轉(zhuǎn)化為計算同余式問題,例如要計算出模11的非零二次剩余,只要解出同余式[d11-12≡1(mod 11)],也就是[d5≡1(mod 11)]。所以利用WA中的PowerModList函數(shù),輸入命令PowerModList[1, 1/5, 11],就可以輸出{1, 3, 4, 5, 9},為模11的非零二次剩余。
3 結(jié)束語
WA是非常強(qiáng)大、易用的知識型搜索工具,語法同Mathematica完全兼容。它不僅可以應(yīng)用在網(wǎng)絡(luò)信息安全課程中,還可以用在數(shù)學(xué)、物理、化學(xué)等其他各大學(xué)科;不僅在高等教育課程中有應(yīng)用價值,在初等教育中也有著廣泛的應(yīng)用前景。同MATLAB相比,目前WA在國內(nèi)還沒有得到應(yīng)有的重視,相關(guān)研究還比較少,希望將來它能夠得到更廣泛的應(yīng)用,在教育教學(xué)中發(fā)揮更大的作用。
參考文獻(xiàn)(References):
[1] 蒙柳.基于計算的知識搜索引擎Wolfram Alpha研究[J].圖書館學(xué)研究:應(yīng)用版,2010.000(002):58-61,64
[2] 王保衛(wèi),劉黨生.WolframAlpha開啟自適應(yīng)知識學(xué)習(xí)新時空[J].中國信息技術(shù)教育,2017.000(013):60-63
[3] 祁蘭.Mathematica語言在求初等數(shù)論整除性問題的應(yīng)用[J].價值工程,2013.32(4):241-242
[4] 郝慶一.Wolfram Alpha在大學(xué)數(shù)學(xué)實(shí)驗(yàn)教學(xué)中的應(yīng)用研究[J].安慶師范學(xué)院學(xué)報:自然科學(xué)版,2016.
[5] 羅亮冰.Matlab在數(shù)論研究中的應(yīng)用——用Matlab驗(yàn)證哥德巴赫猜想與孿生素數(shù)猜想[J].科教導(dǎo)刊(中旬刊),2015.9:76-77,83
[6] 紀(jì)崗.Matlab語言在初等數(shù)論中的應(yīng)用[J].福建師大福清分校學(xué)報,2013.2:19-22
[7] 楚智媛,呂闖,趙曉磊.利用matlab編程求解初等數(shù)論問題[J].中國科技信息,2020.20:47-48
[8] 蔡皖東.網(wǎng)絡(luò)信息安全技術(shù)[M].清華大學(xué)出版社,2015.
[9] 潘承洞,潘承彪.初等數(shù)論-第2版[M].北京大學(xué)出版社,2003.
[10] 張大雷,陳磊.2ip+1型素數(shù)及其原根[J].淮南師范學(xué)院學(xué)報,2017.19(5):92-93