提起rsa
大家一定不陌生,在開發中經常使用,也經常聽同事說道。
話說很久以前,人們就懂的了加密這個技術。在戰爭時期,間諜就會拿著密文
和密匙
來對資訊就行傳遞。 這種簡單的密文
+密匙(key)
就是對稱加密
加密: 明文 + 密匙
解密: 密文 + 密匙由於這種加密方式過於簡單,所以後來引入了數學演算法。
rsa
就是由特殊的數學演算法構成的,也是非對稱加密演算法
。非對稱加密需要兩個金鑰:公鑰(public key)
+私鑰(private key)
用公鑰加密,私鑰解密
私鑰加密,公鑰解密如果兩個正整數m和n互質,那麼m的φ(n)次方減去1,可以被n整除。
一下是幾種情況
例如:
ϕ(8) = ϕ(2^3) = 2^3 - 2^(2-1) = 8 - 4 = 4
ϕ(15) = ϕ(3) * ϕ(5) = 2 * 4 = 8
複製**
尤拉定理的特殊情況:如果兩個正整數m和n互質,而且n為質數!那麼φ(n)結果就是n-1。
如果兩個正整數e和x互質,那麼一定可以找到整數d,使得 ed-1 被x整除。 那麼d就是e對於x的「模反元素」
那麼,通過一系列的數學轉換,最終得出了rsa演算法
公鑰:e 和 n
私鑰:d 和 n
明文:m
密文:c
複製**
總共生成6個數字:p1、p2、n、φ(n)、e、d
除了公鑰用到了n和e 其餘的4個數字是不公開的。 目前破解rsa得到d的方式如下:
那麼rsa有優點和弊端是什麼了?
優點
缺點
20181117 RSA演算法數學原理分析
非對稱加密技術,在現在網路中,有非常廣泛應用。加密技術更是數字貨幣的基礎。所謂非對稱,就是指該演算法需要一對金鑰,使用其中乙個 公鑰 加密,則需要用另乙個 私鑰 才能解密。rsa演算法原理 rsa演算法的基於這樣的數學事實 兩個大質數相乘得到的大數難以被因式分解。如 有很大質數p跟q,很容易算出n,...
數學,原理,方法,技巧
學校裡學到的東西為什麼沒有用處?主要是學到的東西大部份都有人去實現了。比如資料結構中學做乙個二叉樹。其實在外邊幹活的時候根本不需要。誰會讓你去編寫乙個二叉樹?即使做專案的時候真的有用,大概也有已經實現的類代替了。所以有人說學校裡學到的東西基本沒有用。不過也難怪,因為這些人只是學到了原理或者方法。學校...
補碼的數學原理
計算機是用n位0和1來表示數字的,這樣很容易表示正數,但是怎麼表示負數呢?人類聰明的大腦想到了用第一位來表示符號,0代表正數,1代表負數。這種表示方法最好理解,叫做原碼。但是計算機在計算的時候,為了簡化,需要把減法當做加法運算。這個很簡單,負數不就是幹這個的嗎?比如2 1 2 1 但是負數如果按照原...