0

我是密碼學的新手,我想知道是否有任何已經實現的方法來獲取公鑰。使用Bouncy Castle獲取RSA公鑰剩餘部分

我發現有關公用其餘以下聲明: Issuer Public Key Modulus分爲 兩個部分,一個部分由N- CA 的 - 的 模量(的最左邊的數字的36最顯著字節髮卡行公鑰)和第二部分由 剩餘的N的 我 - (N CA - 36)的彈性模量的至少顯著字節 (the Issuer Public Key Remainder

本書

http://mech.vub.ac.be/teaching/info/mechatronica/finished_projects_2007/Groep%201/Smartcard_files/EMV%20v4.1%20Book%202.pdf

,我使用org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters#getModulus

獲得模部分。

我可以使用Bouncy Castle獲取公鑰剩餘部分還是應該根據上述規範手動計算它?

回答

1

不,BouncyCastle沒有提供API來獲取公鑰餘數,因爲BouncyCastle提供了RSA的一般實現,相反,公用密鑰餘數並不常用:它主要僅用於集成電路卡和相關軟件。

所以,如果你需要得到餘數,你必須自己計算它。如果你不處理集成電路卡,你不應該擔心其餘部分。

現在,這裏是一個方法來計算餘數(我們假設鎳和NCA的定義):

BigInteger modulus = ...; 
int nbytes = Ni − (Nca − 36); 
BigInteger remainder = modulus.divideAndRemainder(BigInteger.valueOf(2).pow(8*nbytes))[1]; 
相關問題