RSA演算法概述及分析

2021-09-22 14:08:25 字數 1707 閱讀 9153

rsa演算法數學基礎

假設a想要通過乙個不可靠的**接收b的一條私人訊息。 她可以用以下的方式來產生乙個公鑰和乙個私鑰:

1.隨意選擇兩個大的質數p和q,p不等於q,計算n=pq;

2.根據尤拉函式,不大於n且與n互質的整數個數為(p-1)(q-1);

3.選擇乙個整數e與(p-1)(q-1)互質,並且e小於(p-1)(q-1);

4.用以下這個公式計算d:d× e ≡ 1 (mod (p-1)(q-1));

5.將p和q的記錄銷毀;

(n,e)是公鑰,(n,d)是私鑰。(n,d)是秘密的。a將她的公鑰(n,e)傳給b,而將她的私鑰(n,d)藏起來。

假設b想給a送乙個訊息m,他知道alice產生的n和e。他使用起先與alice約好的格式將m轉換為乙個小於n的整數n,比如他可以將每乙個字轉換為這個字的unicode碼,然後將這些數字連在一起組成乙個數字。假如他的資訊非常長的話,他可以將這個資訊分為幾段,然後將每一段轉換為n。用下面這個公式他可以將n加密為c:計算c並不複雜。bob算出c後就可以將它傳遞給alice。

rsa演算法描述

rsa公開金鑰密碼體制。所謂的公開金鑰密碼體制就是使用不同的加密金鑰與解密金鑰,是一種「由已知加密金鑰推導出解密金鑰在計算上是不可行的」密碼體制。

在公開金鑰密碼體制中,加密金鑰(即公開金鑰)pk是公開資訊,而解密金鑰(即秘密金鑰)sk是需要保密的。加密演算法e和解密演算法d也都是公開的。雖然解密金鑰sk是由公開金鑰pk決定的,但卻不能根據pk計算出sk。

正是基於這種理論,2023年出現了著名的rsa演算法,它通常是先生成一對rsa 金鑰,其中之一是保密金鑰,由使用者儲存;另乙個為公開金鑰,可對外公開,甚至可在網路伺服器中註冊。為提高保密強度,rsa金鑰至少為500位長,一般推薦使用1024位。這就使加密的計算量很大。為減少計算量,在傳送資訊時,常採用傳統加密方法與公開金鑰加密方法相結合的方式,即資訊採用改進的des或idea對話金鑰加密,然後使用rsa金鑰加密對話金鑰和資訊摘要。對方收到資訊後,用不同的金鑰解密並可核對資訊摘要。

rsa演算法是第乙個能同時用於加密和數字簽名的演算法,也易於理解和操作。rsa是被研究得最廣泛的公鑰演算法,從提出到現今的三十多年裡,經歷了各種攻擊的考驗,逐漸為人們接受,普遍認為是目前最優秀的公鑰方案之一。

rsa速度分析

rsa實現如果在數叫小的情況下熟讀是很快的,但是基於網路安全的需要,rsa都是基於大整數運算的,由於進行的都是大數計算,使得rsa最快的情況也比des慢上100倍,無論是軟體還是硬體實現。速度一直是rsa的缺陷。一般來說只用於少量資料加密。這種熟讀差異使得本課題是設計秘鑰分配,採用rsa做為交換秘鑰的原因。

目前面臨的問題及今後發展方向分析

2023年,rsa大會開始將著眼點放在與大資料相關的安全議題身上。這一年的主題為古登堡印刷機,其徹底改變了人們對日常資訊的閱讀與使用方式——事實上,也就是大資料的基石。問題何在?隨著資訊變得愈發隨手可得,我們將很難區分其具體使用者,或者說全民都對新興創新擁有平等的機會。

這也許正是rsa大會提出的最具先見之明的觀點:大資料如今已經成為企業的基礎性資源,而快速興起的物聯網技術只會進一步提公升此類資料的可用性及整體體量。展望未來,資訊保安專家必須將大資料視為安全架構中的基礎性組成部分,而非安全挑戰。這種文化層面的轉變甚至要比計算能力的發展更具劃時代意義。

也就是說,大資料的發展將向現有rsa發起安全挑戰,但是未來rsa也會伴隨大資料發展跟著進步。

演算法概述及複雜理論

1 可計算問題 不可計算問題 計算機研究可計算問題 2 困難問題 時間度量 3 p np npc 解決問題的乙個方法或過程,是乙個由若干個演算法指令組成的有窮序列。演算法的特點 1 輸入和輸出 2 確定性 3 可行性 4 有窮性 演算法的描述 1 偽 2 流程圖 3 自然語言的描述 對任意乙個輸入,...

演算法基礎例項概述及目錄

筆者開設本專題主要為了溫習一些常見演算法,主要受眾是一些考研的學生和工作演算法面試的程式設計師,希望本文章能對你有所幫助!將數字字串轉換成整數 求素數超長正整數加法 多項式相加 拓展字元 簡易計算器 計算e值 生成全排列數 漢諾塔 hanoi tower 遊戲 學生成績排序 從檔案中查詢包含給定字串...

Keepalived 概述及部署

keepalived 軟體起初是專為lvs 負載均衡軟體設計的,用來管理並監控lvs 集群系統中各個服務節點的狀態,後來又加入了可以實現高可用的vrrp 功能。因此,keepalived除了能夠管理lvs軟體外,還可以作為其他服務 例如 nginx haproxy mysql等 的高可用解決方案軟體...