【加密】RSA加密之算法
RSA公鑰加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美國麻省理工學院)開發的。
RSA算法是一種非對稱密碼算法,所謂非對稱,就是指該算法需要一對密鑰,使用其中一個加密,則需要用另一個才能解密。
RSA的算法涉及三個參數,n、e1、e2。
RSA的公鑰、私鑰的組成,以及加密、解密的公式可見于下表:
| 
 公鑰KU  | 
 n:兩素數p 和q 的乘積(p 和q保密) e1:與(p-1)*(q-1)互質  | 
 f(n)=(p-1)*(q-1) 1<e1<f(n)  | 
| 
 私鑰KR  | 
 n:兩素數p 和q 的乘積(p 和q保密) e2:e1`-1mod f(n)  | 
 (e2*e1)mod f(n)=1 或 e2*e1≡1 mod f(n) 即:e2≡e1`-1mod f(n) ≡是數論中表示同余的符號。(e2*e1)mod f(n)=1 mod f(n)=1  | 
| 
 加密  | 
 A≡Be1 mod n  | 
 e1和e2可以互換使用,即:A=Be2 mod n;B=Ae1 mod n;  | 
| 
 解密  | 
 B≡Ae2 mod n  | 
公鑰KU=( n,e1),私鑰KR=(n,e2)
加密時,先將明文變換成0至n-1的一個整數B。若明文較長,可先分割成適當的組,然后再進行交換。
設密文為A,則加密過程為:A≡Be1 mod n, 解密過程為:B≡Ae2 mod n。
實例描述:
假設用戶A需要將明文“key”通過RSA加密后傳遞給用戶B,過程如下:
(1)設計公私密鑰(n,e1)和(n,e2)。
令p=3,q=11,則n=33 ;f(n)=(p-1)*(q-1)=20;取e1=3,(3與20互質),(3*e2)mod 20=1,e2=7
從而我們可以設計出一對公私密鑰,加密密鑰(公鑰)為:KU =( n,e1)=(33,3),解密密鑰(私鑰)為:KR =(n,e2)=(33,7)。
(2)英文數字化。
將明文信息數字化,并將每塊兩個數字分組。假定明文英文字母編碼表為按字母順序排列數值,即:
則得到分組后的key的明文信息為:11,05,25。
(3)明文加密
A1e2 mod n= 117mod 33=11
A2e2 mod n= 317mod 33=05
A3e2 mod n= 167mod 33=25
因此,得到相應的密文信息為:11,31,16。
(4)密文解密。
A1e2 mod n= 117mod 33=11
A2e2 mod n= 317mod 33=05
A3e2 mod n= 167mod 33=25
用戶B得到明文信息為:11,05,25。根據上面的編碼表將其轉換為英文,我們又得到了恢復后的原文“key”。
公鑰:
<RSAKeyValue>
<Modulus>3eAe9tZz8P91mcmLscZin980wDmhwfI6gJcOm4hrCbZ8MzemFweABxDQdaYh+nKUKX6ln+QFc5FuBVdOdRRuWK48SN3t9wWjtI/4M8CdiqT1iI1JtkFWDmVfh1JPJSNcMPQyHOo79d6XgMacMM6SrsYGiczdVSzAxOx1jIyvQ70=</Modulus>
<Exponent>AQAB</Exponent>
</RSAKeyValue>
私鑰:
<RSAKeyValue>
<Modulus>3eAe9tZz8P91mcmLscZin980wDmhwfI6gJcOm4hrCbZ8MzemFweABxDQdaYh+nKUKX6ln+QFc5FuBVdOdRRuWK48SN3t9wWjtI/4M8CdiqT1iI1JtkFWDmVfh1JPJSNcMPQyHOo79d6XgMacMM6SrsYGiczdVSzAxOx1jIyvQ70=</Modulus>
<Exponent>AQAB</Exponent>
<P>9Ih/GtzEYNYyacKejB8nLqfS5NfztgxILpFieJo1WoXRx4ILs1tpQDSGolyaGvN6frnrVZr9+MyoWuAWkyv2+Q==</P>
<Q>6EehIvbtcOr8ch0XKrwoBtDgvdL+To6I1UcgGuHvQBbSak3eaYl4sxGtBx93lF+H0TJLyis1f73T81gQyOjP5Q==</Q>
<DP>YXLH3GegJssVegoh7ss3bSNaKvJYX/MTDOPJLzCdFH8Bs5UCnq5OClUkVi27CASBi2ECBLJoha7hZJ2qwWmi2Q==</DP>
<DQ>fCMz8ezHzw425oG3jOZL+gCN68UkljVE2b8OYG+ZHsZTo+6DzCFlOUZcE690h/5aJqpbqOtYxzFbYfUR213ZJQ==</DQ>
<InverseQ>W4qjq1P+6m59/YVAMmkNBf3zLTYbPnN1RxxJWIQY5H4HCbIG+fRBwgfFkvtAYyJP59d4h827VjbnzDPjWpWeOA==</InverseQ>
<D>O1E81f8VdhvF4/yHFVsVaOpynuWJgmFxFInOBPTesPURlVvOUp/VsY3kPV/R+7QAOmu6edmrP29k+5aQyipRKXLJuL685z1s1RQF7ERNojg3JnEnSw11fX6Ca1lc7eqhU09wk2ZkXlXuIXCk8s0W59OXS/0sjv0v+hAcF957nuE=</D>
</RSAKeyValue>
公鑰:
BgIAAACkAABSU0ExAAQAAAEAAQC/A1j2YA9w0ZQe6/0d000kdHqDEXzYDeItfhgteqfiEHfon0pnP3gOoVqQPN1V3e6ZZ0dFOmtcugPPMNoQ5QVILPXQlMwDY/h+9km2MdsZBKKGo9CJgK7Gm6g5sZ/V0IahK4bbc3aYjpFf8w6ji1dQcRIPUFqFgmYfFWmSzpIiwA==
私鑰:
BwIAAACkAABSU0EyAAQAAAEAAQC/A1j2YA9w0ZQe6/0d000kdHqDEXzYDeItfhgteqfiEHfon0pnP3gOoVqQPN1V3e6ZZ0dFOmtcugPPMNoQ5QVILPXQlMwDY/h+9km2MdsZBKKGo9CJgK7Gm6g5sZ/V0IahK4bbc3aYjpFf8w6ji1dQcRIPUFqFgmYfFWmSzpIiwCEx1trIQlrR6eHc9ygIZdHmmDu/LWOHH5d+8XhDwuDrPmBl4JWfwP957JNfytqFcUH2fHrlVLrYJYWj/4TK+PbfOIRmp7hoFIo41HcvalT7SVg1Gv3CuWmJt9OxLXZTAPHzYeMD3/lQqqIhIJ+K4jESzkngY7VifIz2nAECnCjHIY5yKnx0zBSPj9AzFDHK1p/3GqgrBmDIGZyVe0EQ3DH+pIWXpHzHpYqw82qm4gK092H2Ti9tcGoHv/G7idqy2dPT21+HCU+Rouj+XcR7qHczBmvvSKdyJbcwm41A1MkvKgXzK72kOzfd+RR9od0jNxJ4s5xZ+i8TExvvy4xvmJH6LPhTRaqzDvI5LsQf7GXUlC2JYFJfjdN1mGo65LkgCW+6b3fD/TMTDqfFZcoa6dgk4nlYGfHsqeNJAuC9RGAngZV5dtKRqyAyr1HnjU4RrLBnkm6bRln1K0OFQWtBwHZQNs8n2FGNlZ1bFQ5S6XqnDLpkbKM53XQ83zt7G7r3Dj83QBiYyfBSnC5jgLK+HEvxegVLiVfwIo89KPy1yQFAp4FdxBqoJB9AXem2PAuZoaoOzmIEj2w5YTKsw6gkB50=
總結
以上是生活随笔為你收集整理的【加密】RSA加密之算法的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: CMSIS-RTOS功能概述
 - 下一篇: 10G的变态SQL文件,如何快速打开编辑