gnu.crypto.sig.rsa

Class RSA

public class RSA extends Object

Utility methods related to the RSA algorithm.

References:

  1. RSA-PSS Signature Scheme with Appendix, part B.
    Primitive specification and supporting documentation.
    Jakob Jonsson and Burt Kaliski.
  2. Public-Key Cryptography Standards (PKCS) #1:
    RSA Cryptography Specifications Version 2.1.
    Jakob Jonsson and Burt Kaliski.
  3. Remote timing attacks are practical
    D. Boneh and D. Brumley.

Version: $Revision: 1.9 $

Method Summary
static BigIntegerdecrypt(PrivateKey K, BigInteger c)

An implementation of the RSADP algorithm.

static BigIntegerencrypt(PublicKey K, BigInteger m)

An implementation of the RSAEP algorithm.

static byte[]I2OSP(BigInteger s, int k)

Converts a multi-precision integer (MPI) s into an octet sequence of length k.

static BigIntegersign(PrivateKey K, BigInteger m)

An implementation of the RSASP method: Assuming that the designated RSA private key is a valid one, this method computes a signature representative for a designated message representative signed by the holder of the designated RSA private key.

static BigIntegerverify(PublicKey K, BigInteger s)

An implementation of the RSAVP method: Assuming that the designated RSA public key is a valid one, this method computes a message representative for the designated signature representative generated by an RSA private key, for a message intended for the holder of the designated RSA public key.

Method Detail

decrypt

public static final BigInteger decrypt(PrivateKey K, BigInteger c)

An implementation of the RSADP algorithm.

Parameters: K the recipient's RSA private key. c the ciphertext representative as an MPI.

Returns: the message representative, an MPI between 0 and n - 1 (n being the shared public modulus).

Throws: ClassCastException if K is not an RSA one. IllegalArgumentException if c, the ciphertext representative is not between 0 and n - 1 (n being the shared public modulus).

encrypt

public static final BigInteger encrypt(PublicKey K, BigInteger m)

An implementation of the RSAEP algorithm.

Parameters: K the recipient's RSA public key. m the message representative as an MPI.

Returns: the resulting MPI --an MPI between 0 and n - 1 (n being the public shared modulus)-- that will eventually be padded with an appropriate framing/padding scheme.

Throws: ClassCastException if K is not an RSA one. IllegalArgumentException if m, the message representative is not between 0 and n - 1 (n being the public shared modulus).

I2OSP

public static final byte[] I2OSP(BigInteger s, int k)

Converts a multi-precision integer (MPI) s into an octet sequence of length k.

Parameters: s the multi-precision integer to convert. k the length of the output.

Returns: the result of the transform.

Throws: IllegalArgumentException if the length in octets of meaningful bytes of s is greater than k.

sign

public static final BigInteger sign(PrivateKey K, BigInteger m)

An implementation of the RSASP method: Assuming that the designated RSA private key is a valid one, this method computes a signature representative for a designated message representative signed by the holder of the designated RSA private key.

Parameters: K the RSA private key. m the message representative: an integer between 0 and n - 1, where n is the RSA modulus.

Returns: the signature representative, an integer between 0 and n - 1, where n is the RSA modulus.

Throws: ClassCastException if K is not an RSA one. IllegalArgumentException if m (the message representative) is out of range.

verify

public static final BigInteger verify(PublicKey K, BigInteger s)

An implementation of the RSAVP method: Assuming that the designated RSA public key is a valid one, this method computes a message representative for the designated signature representative generated by an RSA private key, for a message intended for the holder of the designated RSA public key.

Parameters: K the RSA public key. s the signature representative, an integer between 0 and n - 1, where n is the RSA modulus.

Returns: a message representative: an integer between 0 and n - 1, where n is the RSA modulus.

Throws: ClassCastException if K is not an RSA one. IllegalArgumentException if s (the signature representative) is out of range.

Copyright © 2001, 2002, 2003 Free Software Foundation, Inc. All Rights Reserved.