• 您當前所在位置:主頁 > 加密技術 > 對稱加密 >
    聯系智融 / CONTACT US

    客服電話:027-87379468

    技術支持:027-87379468

    傳真:027-87379428

    郵箱:gongch@zronggsoft.com

    QQ: 點擊這里給我發消息 點擊這里給我發消息
    對稱加密

    RSA加密算法的原理

    發布時間:2015-05-11 15:53
     
    近年來,網絡的發展和普及,解除了人們傳統意義上的時間和空間的束縛,真正實現了全球性息化,但
     
    與此同時,由于網絡的開放性,互動性,信息采用不正常的手段進行修改,代替和竊取等一系列的不安
     
    全問題。,因此信息安全是當今社會一個必不可少的命題。
     
    RSA是第一個比較完善的公開密鑰算法,它既能用于加密,也能用于數字簽名。
    rsa算法不但能用于數據加密,也能用數字簽名,還能檢測素數的算法,能夠抵抗到目前為此已知的所有
     
    密碼功擊,其安全性依賴于大素數因數分解的困難性。
     

    RSA加密算法原理圖:

     
    RSA加密算法中,只用到素數、互質數、指數運算、模運算等幾個簡單的數學知識。

    素數

     
      素數又稱質數,指在一個大于1的自然數中,除了1和此整數自身外,不能被其他自然數整除的數.
    什么是“素數”?
      素數是這樣的整數,它除了能表示為它自己和1的乘積以外,不能表示為任何其它
     
    兩個整數的乘積。例如,15=3*5,所以15不是素數;又如,12=6*2=4*3,所以12也不是素數。
     
    另一方面,13除了等于13*1以外,不能表示為其它任何兩個整數的乘積,所以13是一個素數。素數也
     
    稱為“質數”。
     
    常見的互質數判斷方法主要有以下幾種:
     
    兩個不同的質數一定是互質數。例如,2與7、13與19。
    一個質數,另一個不為它的倍數,這兩個數為互質數。例如,3與10、5與 26。
    相鄰的兩個自然數是互質數。如 15與 16。
    相鄰的兩個奇數是互質數。如 49與 51。
    較大數是質數的兩個數是互質數。如97與88。
    小數是質數,大數不是小數的倍數的兩個數是互質數。例如 7和 16。
    2和任何奇數是互質數。例如2和87。
    1不是質數也不是合數,它和任何一個自然數在一起都是互質數。如1和9908。
    輾轉相除法。

    指數運算

     
      指數運算又稱乘方計算,計算結果稱為冪。nm指將n自乘m次。把nm看作乘方的結果,叫做”n的
     
    m次冪”或”n的m次方”。其中,n稱為“底數”,m稱為“指數”。
    模運算
     
      模運算即求余運算。“模”是“Mod”的音譯。和模運算緊密相關的一個概念是“同余”。數學上
     
    ,當兩個整數除以同一個正整數,若得相同余數,則二整數同余。
     
      兩個整數a,b,若它們除以正整數m所得的余數相等,則稱a,b對于模m同余,記作: a ≡ b (mod 
     
    m);讀作:a同余于b模m,或者,a與b關于模m同余。例如:26 ≡ 14 (mod 12)。

    公鑰與密鑰的產生

     
      假設Alice想要通過一個不可靠的媒體接收Bob的一條私人訊息。她可以用以下的方式來產生一個公鑰和一個私鑰:
     
    隨意選擇兩個大的質數p和q,p不等于q,計算N=pq。
    根據歐拉函數,求得r = (p-1)(q-1)
    選擇一個小于 r 的整數 e,求得 e 關于模 r 的模反元素,命名為d。(模反元素存在,當且僅當e與r互質)
    將 p 和 q 的記錄銷毀。
    (N,e)是公鑰,(N,d)是私鑰。Alice將她的公鑰(N,e)傳給Bob,而將她的私鑰(N,d)藏起來。
     
     

    RSA加密算法的安全性

     
      當p和q是一個大素數的時候,從它們的積pq去分解因子p和q,這是一個公認的數學難題。然而,雖然RSA的安全性依賴于大數的因子分解,但并沒有從理論上證明破譯RSA的難度與大數分解難度等價。
    RSA加密算法的缺點
      雖然RSA加密算法作為目前最優秀的公鑰方案之一,在發表三十多年的時間里,經歷了各種攻擊的考驗,逐漸為人們接受。但是,也不是說RSA沒有任何缺點。由于沒有從理論上證明破譯RSA的難度與大數分解難度的等價性。所以,RSA的重大缺陷是無法從理論上把握它的保密性能如何。在實踐上,RSA也有一些缺點:
     
    產生密鑰很麻煩,受到素數產生技術的限制,因而難以做到一次一密;
    分組長度太大,為保證安全性,n 至少也要 600 bits 以上,使運算代價很高,尤其是速度較慢
     
     

    簽名消息

     
      RSA也可以用來為一個消息署名。假如甲想給乙傳遞一個署名的消息的話,那么她可以為她的消息計算一個散列值(Message digest),然后用她的密鑰(private key)加密這個散列值并將這個“署名”加在消息的后面。這個消息只有用她的公鑰才能被解密。乙獲得這個消息后可以用甲的公鑰解密這個散列值,然后將這個數據與他自己為這個消息計算的散列值相比較。假如兩者相符的話,那么他就可以知道發信人持有甲的密鑰,以及這個消息在傳播路徑上沒有被篡改過。

    RSA加密算法的缺點

      雖然RSA加密算法作為目前最優秀的公鑰方案之一,在發表三十多年的時間里,經歷了各種攻擊的考驗,逐漸為人們接受。但是,也不是說RSA沒有任何缺點。由于沒有從理論上證明破譯RSA的難度與大數分解難度的等價性。所以,RSA的重大缺陷是無法從理論上把握它的保密性能如何。在實踐上,RSA也有一些缺點:
     
    產生密鑰很麻煩,受到素數產生技術的限制,因而難以做到一次一密;
    分組長度太大,為保證安全性,n 至少也要 600 bits 以上,使運算代價很高,尤其是速度較慢
     

    加密和解密

    有了公鑰和密鑰,就能進行加密和解密了。
     
    本文鏈接:http://www.bj-meiling.com/a/jiamijishu/duichenjiami20150511322.html
    相關文章推薦

    報價申請
    武漢智融科技有限公司 加密專題 EDS
    技術咨詢
    武漢智融科技有限公司 加密專題 EDS
    關注我們

    武漢智融科技有限公司 加密專題 EDS

    久久久久久久久久久精品