Loading Now

密碼系統 RSA 攻防

目錄

簡介

NIST美國國家標準與科技機構發起的Public Key公開金鑰加解密系統競賽,RSA (Rivest–Shamir–Adleman)加密演算法由三位密碼學家共同研究出來在1973年發表,最終獲選最早為公開金鑰系統標準之一,雖然後來英國Government Communications Headquarters(GCHQ)國家通訊總部說他們的英國密碼學家早在1970年就已經研究出Non-Secret Encryption這種非對稱式加解密系統,但不管怎麼說,RSA在當時算是非常突破性的成果。

金鑰產生 Key generation

首先選擇兩個隨機的大質數quicklatex.com-1b59fd25aed1ecf6146b4460c9dc464d_l3 密碼系統 RSA 攻防quicklatex.com-c8634923e8db15ae8bdbfe9af002bfef_l3 密碼系統 RSA 攻防,通常教科書或老師說要取大質數

那怎樣的質數才算大?

參考量測整數複雜度之後討論都使用多少bit長度為單位,以及quicklatex.com-1b59fd25aed1ecf6146b4460c9dc464d_l3 密碼系統 RSA 攻防quicklatex.com-c8634923e8db15ae8bdbfe9af002bfef_l3 密碼系統 RSA 攻防這兩個大質數的長度要很接近,用來計算quicklatex.com-8cef6b4f4f69246484c07bb5de49b6a5_l3 密碼系統 RSA 攻防: quicklatex.com-4e570049a3e56ea1168b675ac0dbc764_l3 密碼系統 RSA 攻防 並且 quicklatex.com-93ff9d5d697944c356deefd0519f7c70_l3 密碼系統 RSA 攻防,如上所說挑選出來的是quicklatex.com-71ac0729266542073b5b2cd524a3599c_l3 密碼系統 RSA 攻防的長度。

quicklatex.com-43fb8b0a457a66fb24e695614220c5e2_l3 密碼系統 RSA 攻防可以參考Euler’s Totient Function尤拉函數,目的是為了找所有與quicklatex.com-8cef6b4f4f69246484c07bb5de49b6a5_l3 密碼系統 RSA 攻防互質的數,quicklatex.com-1b59fd25aed1ecf6146b4460c9dc464d_l3 密碼系統 RSA 攻防quicklatex.com-c8634923e8db15ae8bdbfe9af002bfef_l3 密碼系統 RSA 攻防挑質數的原因在於在quicklatex.com-1b59fd25aed1ecf6146b4460c9dc464d_l3 密碼系統 RSA 攻防之下,每一個數都會跟quicklatex.com-1b59fd25aed1ecf6146b4460c9dc464d_l3 密碼系統 RSA 攻防互質,同樣的在quicklatex.com-c8634923e8db15ae8bdbfe9af002bfef_l3 密碼系統 RSA 攻防之下每一個數也都會跟quicklatex.com-c8634923e8db15ae8bdbfe9af002bfef_l3 密碼系統 RSA 攻防互質,這樣乘出來quicklatex.com-8cef6b4f4f69246484c07bb5de49b6a5_l3 密碼系統 RSA 攻防群的範圍就會是最大的。

接著隨機挑選一個quicklatex.com-554e02aace6fb0a3d08f539096cacfd4_l3 密碼系統 RSA 攻防並且quicklatex.com-027161de2d37209d584ba9cf303e10e1_l3 密碼系統 RSA 攻防,這個e之後就會用來當作公鑰,接著使用公鑰計算私鑰quicklatex.com-647e73247fb79c43b9f2e37a2f1dca19_l3 密碼系統 RSA 攻防:

quicklatex.com-028723d5a57c58aa1892a9bd1216df61_l3 密碼系統 RSA 攻防quicklatex.com-647e73247fb79c43b9f2e37a2f1dca19_l3 密碼系統 RSA 攻防就是quicklatex.com-2bfb2505358521890dac3ec78e413f21_l3 密碼系統 RSA 攻防的乘法反元素,如此一來,公鑰就是quicklatex.com-eea19f244abcaa877df41510da5d6328_l3 密碼系統 RSA 攻防,而私鑰就是quicklatex.com-47b819117fa03cf4ccb4f0aa4db08287_l3 密碼系統 RSA 攻防

加密

選一個想要加密的明文Message quicklatex.com-74e9bd274e009f275ebfdec7b3af63b0_l3 密碼系統 RSA 攻防:

quicklatex.com-1b8a61ee4f85a014c5e560d5ee87288d_l3 密碼系統 RSA 攻防: 加密時使用接收者的公鑰進行加密。

解密 Decryption

接收者收到傳輸者加密過後的密文 Ciphertext quicklatex.com-d854ff9c56c19504eefa0266ae10b6a3_l3 密碼系統 RSA 攻防:

quicklatex.com-0150c491134773f6ed2fa557efca4072_l3 密碼系統 RSA 攻防: 解密時接者者使用只有自己知道的私鑰進行解密。

正確性 Correctness

私鑰是由公鑰所計算得來的quicklatex.com-028723d5a57c58aa1892a9bd1216df61_l3 密碼系統 RSA 攻防,可以調換成quicklatex.com-d9b47bc2d80064b91bf5f288120af895_l3 密碼系統 RSA 攻防,原因是使用費馬小定理Fermat’s Little Theorem:

quicklatex.com-5cea3ae89d823a57f26bf835c2083fca_l3 密碼系統 RSA 攻防quicklatex.com-9417465101008d683903ac8601103d46_l3 密碼系統 RSA 攻防為非零整數,quicklatex.com-1b59fd25aed1ecf6146b4460c9dc464d_l3 密碼系統 RSA 攻防為質數。

以及中國餘式定理Chinese Remainder Theorem:

如果quicklatex.com-6117e375a1130aa2eb20222a3f61ccd0_l3 密碼系統 RSA 攻防以及quicklatex.com-4749385ccef3b01a8c18df06fa772a60_l3 密碼系統 RSA 攻防代表quicklatex.com-747eb264b5473fe0ed5c33a3e95559f4_l3 密碼系統 RSA 攻防quicklatex.com-4f8b2d2138d142a5811e67da07b5f8ab_l3 密碼系統 RSA 攻防為互質的兩數。

所以需要證明的是quicklatex.com-526b7008329931abf5a0bec4207bcd2f_l3 密碼系統 RSA 攻防

如前面中國餘式定理所述quicklatex.com-4766ea4431e550e3a09c9baabda1a633_l3 密碼系統 RSA 攻防可以拆成quicklatex.com-58bfc6762e89261e775e905bc598a215_l3 密碼系統 RSA 攻防以及quicklatex.com-5aff249ec8697959a21e40a0684417f3_l3 密碼系統 RSA 攻防使得quicklatex.com-4288da36def262b950d3270b1da80059_l3 密碼系統 RSA 攻防可以成立,再者quicklatex.com-287c3466b666ecae5dbb36f9a025e8a5_l3 密碼系統 RSA 攻防使得quicklatex.com-600650b219e3fe4a0e3df190b2ed9ffe_l3 密碼系統 RSA 攻防

可以將quicklatex.com-600650b219e3fe4a0e3df190b2ed9ffe_l3 密碼系統 RSA 攻防在modular運算看成quicklatex.com-cf69b7687dc2e04c4c9ead36c6265831_l3 密碼系統 RSA 攻防quicklatex.com-44898a6f13ac28ec3124ed4f5f7acd9b_l3 密碼系統 RSA 攻防必須大於0。

quicklatex.com-78a300bde319777da50f313d36407ba4_l3 密碼系統 RSA 攻防

同理在quicklatex.com-aa9bf4fb4cda10665545db2428d6ddb1_l3 密碼系統 RSA 攻防也可行:

quicklatex.com-d922aa8738a80453730b601ce291a28c_l3 密碼系統 RSA 攻防

得證quicklatex.com-3a9f43180f13cd1d20e506a42b0e1f1d_l3 密碼系統 RSA 攻防以及quicklatex.com-7ee180e608300775a54ee3372abc441d_l3 密碼系統 RSA 攻防所以quicklatex.com-ce26a5e92dd1c12b575669130ee70555_l3 密碼系統 RSA 攻防

RSA加密加速

非對稱式加密系統的安全性都倚靠數學難題,而計算這些金鑰大多使用軟體像是openssl等,當然也有像是特殊的加解密硬體機器可以使用,一台也不便宜,所以幾乎都是企業才會去採購,故網路上的伺服器幾乎都是使用軟體的方法在計算,但在網路上每秒有多少組金鑰對正在產生,而軟體的計算速度也不能太慢,故可以使用一些小方法來提昇效率。

像是使用特殊的quicklatex.com-2bfb2505358521890dac3ec78e413f21_l3 密碼系統 RSA 攻防,通常會是quicklatex.com-d627dbd9ba6ab4515f78380af639ec95_l3 密碼系統 RSA 攻防,再將quicklatex.com-2bfb2505358521890dac3ec78e413f21_l3 密碼系統 RSA 攻防轉換成二進制,使用square-multiply algorithm來加快計算速度。

舉例quicklatex.com-d70a41663528cb00f7719186aaff53f1_l3 密碼系統 RSA 攻防使用square-multiply algorithm計算quicklatex.com-d2adcbaeb7ec8e5095d73c2fff133241_l3 密碼系統 RSA 攻防只需要少量的乘法就可以。

另外就是透過中國餘式定理Chinese Remainder Theoremisomorphism特性計算quicklatex.com-dbb35e21e570979d84912d7e5577b654_l3 密碼系統 RSA 攻防:

首先設定quicklatex.com-acfd4309aae8d0121f80af3dfc6388ba_l3 密碼系統 RSA 攻防其中quicklatex.com-a2b450636b29ac044fc5f42e2236c0aa_l3 密碼系統 RSA 攻防

接著預先計算quicklatex.com-4aec72639cbc7fabdc6e2c7ca5db11c0_l3 密碼系統 RSA 攻防以及quicklatex.com-cdc6f292ff523444f5158950703301d0_l3 密碼系統 RSA 攻防

就可以計算quicklatex.com-2ce8f309aae605f29f086e8bde04bb2a_l3 密碼系統 RSA 攻防

軟體的話可以利用平行運算分別計算quicklatex.com-ee5147bb507be742d20b811d703e78ba_l3 密碼系統 RSA 攻防以及quicklatex.com-8d993d327f4135bfc7b8177b8bdf9e79_l3 密碼系統 RSA 攻防

RSA加密攻擊

弱參數攻擊 Weak Parameter Attack

是假設私鑰quicklatex.com-647e73247fb79c43b9f2e37a2f1dca19_l3 密碼系統 RSA 攻防挑選的值: quicklatex.com-afac2898ddea41625972272c76fc0c18_l3 密碼系統 RSA 攻防以及quicklatex.com-105488654c37352f47f75b30f4fd2aa5_l3 密碼系統 RSA 攻防沒有挑選大質數以及quicklatex.com-57dde0600dea7b7f432ad8565c1c9fad_l3 密碼系統 RSA 攻防數值很小,quicklatex.com-1b59fd25aed1ecf6146b4460c9dc464d_l3 密碼系統 RSA 攻防quicklatex.com-c8634923e8db15ae8bdbfe9af002bfef_l3 密碼系統 RSA 攻防很接近的話quicklatex.com-091219f5e641bdd80d0c5547e89eac49_l3 密碼系統 RSA 攻防代表quicklatex.com-a5ddfd507d845c82136cbe38b9a3cebd_l3 密碼系統 RSA 攻防也會很小,而quicklatex.com-26e95d09933bea8b203b7a7c13eb2b56_l3 密碼系統 RSA 攻防會比quicklatex.com-8cef6b4f4f69246484c07bb5de49b6a5_l3 密碼系統 RSA 攻防再大一些,至少quicklatex.com-26031e377e151c293c4f82fb76631e33_l3 密碼系統 RSA 攻防,所以quicklatex.com-95dc1fc221aec1af13f929b3305373a7_l3 密碼系統 RSA 攻防會比quicklatex.com-ac521e40c1c2e6afde922060df95844f_l3 密碼系統 RSA 攻防大一些。

首先我們計算quicklatex.com-07d24d253c65d03b9a8e25048214c150_l3 密碼系統 RSA 攻防quicklatex.com-725c0362d069e66f3218e106eb29bfb4_l3 密碼系統 RSA 攻防取得這個quicklatex.com-8afdd559a7c8bf2e19366fe758bb8ce1_l3 密碼系統 RSA 攻防之後看quicklatex.com-51d64c17edd0b418f99aeb5309be5f48_l3 密碼系統 RSA 攻防是不是一個平方數quicklatex.com-b6b57e0e3bb1c58bcd60f0f0037c35b0_l3 密碼系統 RSA 攻防,如果是的話quicklatex.com-4eded1e1dff989904cefab30257782dc_l3 密碼系統 RSA 攻防有可能會是quicklatex.com-88a8fe3b00e53a7ff1459402206c1615_l3 密碼系統 RSA 攻防,如果quicklatex.com-4eded1e1dff989904cefab30257782dc_l3 密碼系統 RSA 攻防是一個平方數的話,可以看成是n分解成quicklatex.com-bdd37a8417c68fcce3f6cd7cdeaee9b4_l3 密碼系統 RSA 攻防

針對弱參數的對策就是quicklatex.com-1b59fd25aed1ecf6146b4460c9dc464d_l3 密碼系統 RSA 攻防的bit數應該要比quicklatex.com-c8634923e8db15ae8bdbfe9af002bfef_l3 密碼系統 RSA 攻防在少一些,不能夠讓bit數太接近。

共同模數攻擊 Common Modulus Attack

假設一組quicklatex.com-4e570049a3e56ea1168b675ac0dbc764_l3 密碼系統 RSA 攻防用來產生兩對金鑰給兩個使用者:

quicklatex.com-738f0ebcf7147c18e7d1eb58d7f0e180_l3 密碼系統 RSA 攻防

可以使用其中一對的金鑰去搜尋另一對的金鑰,假設今天知道user1的金鑰要猜user2的私鑰:

quicklatex.com-ae804fe0819b03d5bf55e04e12a7f5bf_l3 密碼系統 RSA 攻防quicklatex.com-39ecef2fb0f9bf4f0e0c793783fd03b1_l3 密碼系統 RSA 攻防就是quicklatex.com-be7fa5f0619bf4dc766493bf7c9944ff_l3 密碼系統 RSA 攻防

以及假設一個quicklatex.com-bd9c9657befda13c2a0fa89a4c1f1d92_l3 密碼系統 RSA 攻防同時被這兩個使用者加密,竊聽者可以取得quicklatex.com-e579c60b3121fcd9098dd827cc70e58b_l3 密碼系統 RSA 攻防quicklatex.com-be399ce36adcca5f18ec08669b4a8d33_l3 密碼系統 RSA 攻防,可以計算quicklatex.com-e59805853d9dad063ca01cf776826115_l3 密碼系統 RSA 攻防用來:

quicklatex.com-360037c93a3eb51d894ffbec7820aba7_l3 密碼系統 RSA 攻防,當然先決條件是:

quicklatex.com-4dedaa9ab17ee014d3cdfd4f20738322_l3 密碼系統 RSA 攻防,並且quicklatex.com-1860cf7143a83634b95ee5185ec41cd9_l3 密碼系統 RSA 攻防

針對共同模數攻擊的對策是盡量不要使用同一個quicklatex.com-8cef6b4f4f69246484c07bb5de49b6a5_l3 密碼系統 RSA 攻防群產生太多把金鑰對,以及盡量不要加密同一個明文太多次。

低指數攻擊 Low Exponent Attack

在早期許多伺服器使用quicklatex.com-4c8a23b6a42d3df88d9951f79c82358a_l3 密碼系統 RSA 攻防當作公開金鑰,但風險就是如果quicklatex.com-6d22c131d7ee7256bb9fba35aa75cb66_l3 密碼系統 RSA 攻防只要被三個使用者用quicklatex.com-589693a8e1eac9d8b2830b9c968f2be9_l3 密碼系統 RSA 攻防來加密的話,竊聽者可以取得這些密文quicklatex.com-81a28fc2c2c83ad9a69e04866a90c34a_l3 密碼系統 RSA 攻防:

quicklatex.com-62b8b01a7d3e54ef7af17b804ef5a66e_l3 密碼系統 RSA 攻防

前面提到使用中國餘式定理CRT可以計算共同的數,quicklatex.com-fe47f672159fc6257fdfa00cf49ab0c6_l3 密碼系統 RSA 攻防

quicklatex.com-8eb28c933088cc95d032d867f990ed5f_l3 密碼系統 RSA 攻防使用三次方根演算法就能快速解開取得quicklatex.com-6d22c131d7ee7256bb9fba35aa75cb66_l3 密碼系統 RSA 攻防了。

針對低指數攻個的對策就是quicklatex.com-2bfb2505358521890dac3ec78e413f21_l3 密碼系統 RSA 攻防不要挑選太小。

選定密文攻擊 Chosen Ciphertext Attack

這種攻擊方法需要倚靠Oracle讓攻擊者可以取得明文密文對,可以將oracle想成一張很大的表,系統提供一個Decryption Oracle quicklatex.com-0de30a48df2f4d04fb63bec08c11aa4e_l3 密碼系統 RSA 攻防給這oracle一個使用者自己挑選的密文quicklatex.com-81a28fc2c2c83ad9a69e04866a90c34a_l3 密碼系統 RSA 攻防,oracle會回傳一個quicklatex.com-dbb35e21e570979d84912d7e5577b654_l3 密碼系統 RSA 攻防,唯一的限制就是攻擊者不能要求解開真正想知道的明文密文對,攻擊者只能挑選想破解的密文之外的其他密文,擁有解密oracle後攻擊者要如何攻擊?

透過原本的quicklatex.com-81a28fc2c2c83ad9a69e04866a90c34a_l3 密碼系統 RSA 攻防關聯性計算quicklatex.com-2e35b372c16b9123a0acb99c70105466_l3 密碼系統 RSA 攻防quicklatex.com-1ace52236c9aeac2329b65f128da3680_l3 密碼系統 RSA 攻防

詢問oracle quicklatex.com-99bb6fb9ed775229d87860980f7804a7_l3 密碼系統 RSA 攻防,這個quicklatex.com-1cdb3fa38c367e3a49ff8b6202b49695_l3 密碼系統 RSA 攻防

最後計算quicklatex.com-05b211c9c1ffc1a76325e46913457640_l3 密碼系統 RSA 攻防

透過mask掉原本的quicklatex.com-81a28fc2c2c83ad9a69e04866a90c34a_l3 密碼系統 RSA 攻防得到quicklatex.com-a26e475fff29f0d22c80c39f79f35bfe_l3 密碼系統 RSA 攻防拿去詢問oracle後再使用攻擊者自己挑選的quicklatex.com-b940b043cd4a40d004f86cea333b479a_l3 密碼系統 RSA 攻防還原得到想要攻擊的quicklatex.com-81a28fc2c2c83ad9a69e04866a90c34a_l3 密碼系統 RSA 攻防quicklatex.com-6d22c131d7ee7256bb9fba35aa75cb66_l3 密碼系統 RSA 攻防,而這種選定密文攻擊有兩種型態:

  1. Non-adaptive chosen ciphertext attakc(CCA1): 攻擊者把想要詢問的密文一次挑選出來,只能針對oracle詢問一次quicklatex.com-4609fe6b950944e43bd424ed59a77d7c_l3 密碼系統 RSA 攻防,無法依靠上一次詢問的結果來調整下一次詢問的選擇。
  2. Adaptive chosen ciphertext attack(CCA2): 攻擊者在多項式時間內可以一次一次的詢問oracle,不限詢問次數quicklatex.com-4609fe6b950944e43bd424ed59a77d7c_l3 密碼系統 RSA 攻防,可以透過前一次的詢問來調整下一次的詢問選擇。

如此可見CCA2的安全性等級是最高的,所以看paper在證明密碼系統的安全性時雖然作者會寫有CCA的安全性,但需要讀者再去檢查一下oracle的等級,看是達到CCA1還是CCA2的安全性。

針對RSA選定密文攻擊方法是採用quicklatex.com-8dcb01b92cb03fb949aae3823782b05e_l3 密碼系統 RSA 攻防使用random oracle model來抵抗CCA2的攻擊。

Share this content:

I'm Scientia, currently a graduate student. My research interests include Cryptology, Cryptographic Engineering, Security and Privacy, Computational Complexity, Quantum Cryptography, Hardware Security, Cybersecurity and Anomaly Detection.

Post Comment