0

Ich bin neu in der Kryptographie und ich frage mich, ob es bereits eine Methode implementiert, um den Rest des öffentlichen Schlüssels zu erhalten.Erhalten des öffentlichen Schlüssels RSA Rest mit Bouncy Castle

fand ich die folgende Aussage über den öffentlichen Rest: die Issuer Public Key Modulus in zwei Teile unterteilt ist, ein Teil des N CA bestehend - 36 höchstwertigen Bytes des Modul (das äußersten linken Digits von die Issuer Public Key) und einem zweiten Teil, bestehend aus dem verbleibenden N I - (N CA - 36) am wenigsten signifikanten Bytes des Modul (the Issuer Public Key Remainder)

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

und ich bin mit org.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters # getModulus

das Modul Teil zu bekommen.

Kann ich den Rest des öffentlichen Schlüssels mithilfe von Bouncy Castle erhalten oder soll ich ihn basierend auf der obigen Spezifikation manuell berechnen?

Antwort

1

Nein, BouncyCastle bietet keine API, um den Rest des öffentlichen Schlüssels zu erhalten, da BouncyCastle eine allgemeine Implementierung von RSA bietet und im Gegensatz dazu der Rest des öffentlichen Schlüssels nicht oft verwendet wird: er wird hauptsächlich nur von Integrated Circuit verwendet Karten und zugehörige Software.

Also, wenn Sie den Rest erhalten müssen, müssen Sie es selbst berechnen. Sie sollten sich nicht um den Rest kümmern, wenn Sie nicht mit integrierten Schaltkreisen umgehen.

Nun, hier ist ein Weg, um den Rest zu berechnen (wir annehmen, Ni und Nca definiert sind):

BigInteger modulus = ...; 
int nbytes = Ni − (Nca − 36); 
BigInteger remainder = modulus.divideAndRemainder(BigInteger.valueOf(2).pow(8*nbytes))[1]; 
Verwandte Themen