網站抓取壓力高重慶排名優(yōu)化整站優(yōu)化
?網絡安全課相關知識:
RSA預備知識
1.1 快速冪算法
??? 顧名思義,快速冪就是快速算底數的$n$次冪。其時間復雜度為${\rm{O(log n)}}$,與樸素的$O\left( n \right)$相比,效率有了極大的提高。具體可以參考百度百科:快速冪。
1.2 擴展歐幾里得算法
??? 擴展歐幾里得算法(英語:Extended Euclidean algorithm)是歐幾里得算法(又叫輾轉相除法)的擴展。已知整數a、b,擴展歐幾里得算法可以在求得a、b的最大公約數的同時,能找到整數x、y(其中一個很可能是負數),使它們滿足貝祖等式
ax+by=gcd(a,b).
ax+by=gcd(a,b).
??? 如果$a$是負數,可以把問題轉化成
??? $\left| a \right|\left( { - x} \right){\rm{ }} + {\rm{ }}by{\rm{ }} = {\rm{ }}gcd\left( {\left| a \right|,b} \right)$($\left| a \right|$為a的絕對值),然后令$x\prime {\rm{ }} = {\rm{ }}\left( { - x} \right)$。具體可以參考維基百科:擴展歐幾里得。
1.3 米勒-拉賓素性檢驗算法
??? 要測試${\rm{N}}$是否為素數,首先將${\rm{N - 1}}$分解為${2^s}d$。在每次測試開始時,先隨機選一個介于$[1,N - 1]$的整數$a$,之后如果對所有的$r \in [0,s - 1]$,若${a^d}\bmod N \ne 1$且${a^{{2^r}d}}\bmod N \ne? - 1$,則$N$是合數。否則,$N$有$3/4$的概率為素數。
??? 構成該算法的思想是,如果${a^d} \ne 1\left( {{\rm{mod n}}} \right)$以及$n = 1{\rm{ }} + {\rm{ }}{2^s}d$是素數,則值序列
admodn,a2dmodn,a4dmodn,…,a2sdmodn
admodn,a2dmodn,a4dmodn,…,a2sdmodn
??? 將以$1$結束,而且在頭一個$1$的前邊的值將是$n-1$(當$p$是素數時,對于${y^2} \equiv 1\left( {mod p} \right)$,僅有的解是$y \equiv? \pm 1\left( {mod p} \right)$,因為$\left( {y + 1} \right)\left( {y - 1} \right)$必須是$p$的倍數)。注意,如果在該序列中出現(xiàn)了$n-1$,則該序列中的下一個值一定是$1$,因為${\left( {n-1} \right)^2} \equiv {n^2}-2n + 1 \equiv 1\left( {mod n} \right)$。具體可以參考維基百科:米勒-拉賓素性檢驗。
?
一、RSA加密簡介
RSA加密是一種非對稱加密。可以在不直接傳遞密鑰的情況下,完成解密。這能夠確保信息的安全性,避免了直接傳遞密鑰所造成的被破解的風險。是由一對密鑰來進行加解密的過程,分別稱為公鑰和私鑰。兩者之間有數學相關,該加密算法的原理就是對一極大整數做因數分解的困難性來保證安全性。通常個人保存私鑰,公鑰是公開的(可能同時多人持有)。
二、RSA加密、簽名區(qū)別
加密和簽名都是為了安全性考慮,但略有不同。常有人問加密和簽名是用私鑰還是公鑰?其實都是對加密和簽名的作用有所混淆。簡單的說,加密是為了防止信息被泄露,而簽名是為了防止信息被篡改。這里舉2個例子說明。
第一個場景:戰(zhàn)場上,B要給A傳遞一條消息,內容為某一指令。
RSA的加密過程如下:
(1)A生成一對密鑰(公鑰和私鑰),私鑰不公開,A自己保留。公鑰為公開的,任何人可以獲取。
(2)A傳遞自己的公鑰給B,B用A的公鑰對消息進行加密。
(3)A接收到B加密的消息,利用A自己的私鑰對消息進行解密。
在這個過程中,只有2次傳遞過程,第一次是A傳遞公鑰給B,第二次是B傳遞加密消息給A,即使都被敵方截獲,也沒有危險性,因為只有A的私鑰才能對消息進行解密,防止了消息內容的泄露。
第二個場景:A收到B發(fā)的消息后,需要進行回復“收到”。
RSA簽名的過程如下:
(1)A生成一對密鑰(公鑰和私鑰),私鑰不公開,A自己保留。公鑰為公開的,任何人可以獲取。
(2)A用自己的私鑰對消息加簽,形成簽名,并將加簽的消息和消息本身一起傳遞給B。
(3)B收到消息后,在獲取A的公鑰進行驗簽,如果驗簽出來的內容與消息本身一致,證明消息是A回復的。
在這個過程中,只有2次傳遞過程,第一次是A傳遞加簽的消息和消息本身給B,第二次是B獲取A的公鑰,即使都被敵方截獲,也沒有危險性,因為只有A的私鑰才能對消息進行簽名,即使知道了消息內容,也無法偽造帶簽名的回復給B,防止了消息內容的篡改。
但是,綜合兩個場景你會發(fā)現(xiàn),第一個場景雖然被截獲的消息沒有泄露,但是可以利用截獲的公鑰,將假指令進行加密,然后傳遞給A。第二個場景雖然截獲的消息不能被篡改,但是消息的內容可以利用公鑰驗簽來獲得,并不能防止泄露。所以在實際應用中,要根據情況使用,也可以同時使用加密和簽名,比如A和B都有一套自己的公鑰和私鑰,當A要給B發(fā)送消息時,先用B的公鑰對消息加密,再對加密的消息使用A的私鑰加簽名,達到既不泄露也不被篡改,更能保證消息的安全性。
網絡安全學習路線
對于從來沒有接觸過網絡安全的同學,我們幫你準備了詳細的學習成長路線圖??梢哉f是最科學最系統(tǒng)的學習路線,大家跟著這個大的方向學習準沒問題。
同時每個成長路線對應的板塊都有配套的視頻提供:
需要網絡安全學習路線和視頻教程的可以在評論區(qū)留言哦~
最后
- 如果你確實想自學的話,我可以把我自己整理收藏的這些教程分享給你,里面不僅有web安全,還有滲透測試等等內容,包含電子書、面試題、pdf文檔、視頻以及相關的課件筆記,我都已經學過了,都可以免費分享給大家!
給小伙伴們的意見是想清楚,自學網絡安全沒有捷徑,相比而言系統(tǒng)的網絡安全是最節(jié)省成本的方式,因為能夠幫你節(jié)省大量的時間和精力成本。堅持住,既然已經走到這條路上,雖然前途看似困難重重,只要咬牙堅持,最終會收到你想要的效果。
黑客工具&SRC技術文檔&PDF書籍&web安全等(可分享)
結語
網絡安全產業(yè)就像一個江湖,各色人等聚集。相對于歐美國家基礎扎實(懂加密、會防護、能挖洞、擅工程)的眾多名門正派,我國的人才更多的屬于旁門左道(很多白帽子可能會不服氣),因此在未來的人才培養(yǎng)和建設上,需要調整結構,鼓勵更多的人去做“正向”的、結合“業(yè)務”與“數據”、“自動化”的“體系、建設”,才能解人才之渴,真正的為社會全面互聯(lián)網化提供安全保障。
特別聲明:
此教程為純技術分享!本教程的目的決不是為那些懷有不良動機的人提供及技術支持!也不承擔因為技術被濫用所產生的連帶責任!本教程的目的在于最大限度地喚醒大家對網絡安全的重視,并采取相應的安全措施,從而減少由網絡安全而帶來的經濟損失