Home >> All >> cryptix >> jce >> [ provider Javadoc ] |

**Page**1 2

**•**

**cryptix.jce.provider**: Javadoc index of package cryptix.jce.provider.

**Package Samples:**

**•**cryptix.jce.provider.parameters

**•**cryptix.jce.provider.md

**•**cryptix.jce.provider.mac

**•**cryptix.jce.provider.keyfactory

**•**cryptix.jce.provider.key

**•**cryptix.jce.provider.elgamal

**•**cryptix.jce.provider.dsa

**•**cryptix.jce.provider.cipher

**•**cryptix.jce.provider.asn

**•**cryptix.jce.provider.dh

**Classes:**

**•**CAST5: CAST5 (a.k.a. CAST-128) in Java, as per RFC 2144. The author, Carlisle Adams (the CA in CAST, ST standing for Stafford Tavares) describes CAST5 as: "...a DES-like Substitution-Permutation Network (SPN) cryptosystem which appears to have good resistance to differential cryptanalysis, linear cryptanalysis, and related-key cryptanalysis. This cipher also possesses a number of other desirable cryptographic properties, including avalanche, Strict Avalanche Criterion (SAC), Bit Independence Criterion (BIC), no complementation property, and an absence of weak and semi-weak keys." CAST5 is a symmetric ...

**•**ModeOpenpgpCFB: This mode implements the special CFB mode used by the OpenPGP standard (RFC 2440) Due to the design of the JCE, it is not completely the OpenPGP CFB mode though. OpenPGP specifies that blocksize+2 bytes need to be prefixed to the encrypted data, consisting of blocksize bytes of random data and then repeating the last two bytes of this random data to make it possible to check whether we're decrypting with the right key. Now the question is, where should this data be added and thus also where should this check be done. Inside this mode object would be the obvious choice, such that applications need ...

**•**Blowfish: This class implements the Blowfish algorithm (standard, 16 round version). Blowfish is a symmetric block cipher, with a 64-bit blocksize and a variable key length (between 40 and 448 bits inclusive, in 8-bit increments). References: Bruce Schneier, "Section 14.3 Blowfish," Applied Cryptography, 2nd edition, John Wiley & Sons, 1996 Bruce Schneier, Description of a New Variable-Length Key, 64-Bit Cipher (Blowfish) , Fast Software Encryption Cambridge Security Workshop Proceedings, Springer-Verlag, 1004, pp 191-204. http://www.counterpane.com/blowfish.html The implementation is heavily optimized ...

**•**DES: DES is a block cipher with an 8 byte block size. The key length is 8 bytes, but only 56 bits are used as the parity bit in each byte is ignored. This algorithm has been seriously analysed over the last 30 years, and no significant weaknesses have been reported. Its only known flaw is that the key length of 56 bits makes it relatively easy to brute-force it. To overcome this near-fatal flaw, it is recommended that DES be used in Triple DES mode. The JCA algorithm name for the recommended form of Triple DES is "DES-EDE3". DES was invented by IBM and first released in 1976. The algorithm is freely ...

**•**RC2: RC2 TM The source code (C version) from which this port was done, and (most of) the programming notes, are by P. Gutmann (pgut01@cs.auckland.ac.nz) -- as obtained from Usenet. Eric Young (eay@mincom.oz.au) implementation, also based on Gutmann's work, and included in Eric's colossal SSL library ver 0.6.6 14 Jan 1997, was also used for the initial key data and the computation of the session key schedule. Code to tailor the session key for a specified length in bits is included in this Java implementation but is crippled (commented out). The current code behaves as if the session key is fixed at ...

**•**BlockCipher: A fully constructed Cipher instance looks like this: +------------------------------------------+ | CipherSpi (API methods) | | | | +--------------------------------------+ | | | Padding | | | | | | | | +----------------------------------+ | | | | | Mode | | | | | | | | | | | | +------------------------------+ | | | | | | | CipherSpi | | | | | | | | (blockcipher implementation) | | | | | | | | | | | | | | | +------------------------------+ | | | | | | | | | | | +----------------------------------+ | | | | | | | +--------------------------------------+ | | | +----------------------------------- ...

**•**Mode: A fully constructed Cipher instance looks like this: +------------------------------------------+ | CipherSpi (API methods) | | | | +--------------------------------------+ | | | Padding | | | | | | | | +----------------------------------+ | | | | | Mode | | | | | | | | | | | | +------------------------------+ | | | | | | | CipherSpi | | | | | | | | (blockcipher implementation) | | | | | | | | | | | | | | | +------------------------------+ | | | | | | | | | | | +----------------------------------+ | | | | | | | +--------------------------------------+ | | | +----------------------------------- ...

**•**Padding: A fully constructed Cipher instance looks like this: +------------------------------------------+ | CipherSpi (API methods) | | | | +--------------------------------------+ | | | Padding | | | | | | | | +----------------------------------+ | | | | | Mode | | | | | | | | | | | | +------------------------------+ | | | | | | | CipherSpi | | | | | | | | (blockcipher implementation) | | | | | | | | | | | | | | | +------------------------------+ | | | | | | | | | | | +----------------------------------+ | | | | | | | +--------------------------------------+ | | | +----------------------------------- ...

**•**TripleDES: This class implements Triple DES EDE encryption with three independent keys. DES-EDE3 acts as a block cipher with an 8 byte block size. The encoded form of the Triple DES key should be a 24-byte array, consisting of three 8-byte single DES keys in order - K1, K2 and K3. Encryption and decryption are done as follows: C = E K3 (D K2 (E K1 (P))) P = D K1 (E K2 (D K3 (C))) The alternating encryption and decryption was designed by IBM to enable compatibility with single DES, when all three keys are equal (although it is now rare for Triple DES to be used in that way). When DES-EDE3 is used with the ...

**•**Twofish: Twofish is an AES candidate algorithm. It is a balanced 128-bit Feistel cipher, consisting of 16 rounds. In each round, a 64-bit S-box value is computed from 64 bits of the block, and this value is xored into the other half of the block. The two half-blocks are then exchanged, and the next round begins. Before the first round, all input bits are xored with key- dependent "whitening" subkeys, and after the final round the output bits are xored with other key-dependent whitening subkeys; these subkeys are not used anywhere else in the algorithm. Twofish was submitted by Bruce Schneier, Doug Whiting, ...

**•**RC4: This class implements the RC4 TM stream cipher. The source code (C version) from which this port was done, is the one posted to the sci.crypt, alt.security, comp.security.misc, and alt.privacy newsgroups on Wed, 14 Sep 1994 06:35:31 GMT by "David Sterndark" <sterndark@netcom.com> (Message-ID: <sternCvKL4B.Hyy@netcom.com>) RC4 (TM) was designed by Ron Rivest, and was previously a trade secret of RSA Data Security, Inc. The algorithm is now in the public domain. The name "RC4" is a trademark of RSA Data Security, Inc. References: Bruce Schneier, "Section 17.1 RC4," Applied Cryptography, ...

**•**Serpent: A bit-slice implementation in Java of the Serpent cipher. Serpent is a 128-bit 32-round block cipher with variable key lengths, including 128-, 192- and 256-bit keys conjectured to be at least as secure as three-key triple-DES. Serpent was designed by Ross Anderson, Eli Biham and Lars Knudsen as a candidate algorithm for the NIST AES Quest. References: Serpent: A New Block Cipher Proposal. This paper was published in the proceedings of the "Fast Software Encryption Workshop No. 5" held in Paris in March 1998. LNCS, Springer Verlag. Reference implementation of the standard Serpent cipher written ...

**•**Square: The Square algorithm. Square is a cipher algorithm developed by Joan Daemen and Vincent Rijmen References: The Square home page has up-to-date comments, implementations, and certification data. J. Daemen, L.R. Knudsen, V. Rijmen, " The block cipher Square ," Fast Software Encryption , LNCS 1267, E. Biham, Ed., Springer-Verlag, 1997, pp. 149-165.

**•**RSAAlgorithm: A class that calculates the RSA algorithm. A single method is used for encryption, decryption, signing and verification: for encryption and verification, the public exponent, e , should be given. for decryption and signing, the private exponent, d , should be given. The purpose of having this as a separate class is to avoid duplication between the RSA Cipher and Signature implementations. References: Donald E. Knuth, The Art of Computer Programming , ISBN 0-201-03822-6 (v.2) pages 270-274. ANS X9.31, Appendix B .

**•**RSAAlgorithm: A class that calculates the RSA algorithm. A single method is used for encryption, decryption, signing and verification: for encryption and verification, the public exponent, e , should be given. for decryption and signing, the private exponent, d , should be given. The purpose of having this as a separate class is to avoid duplication between the RSA Cipher and Signature implementations. References: Donald E. Knuth, The Art of Computer Programming , ISBN 0-201-03822-6 (v.2) pages 270-274. ANS X9.31, Appendix B .

**•**IDEA: IDEA is a block cipher with a key length of 16 bytes and a block length of 8 bytes. It is highly popular, being the original cipher in PGP, and has received a lot of cryptanalytic attention. IDEA was written by Dr. X. Lai and Prof. J. Massey. References: See the IDEA page for more details The algorithm is patented by Ascom Systec Ltd (applied for May 1991), and is licensable

**•**RIPEMD: RIPEMD message digest algorithm as described in ISO/IEC 10118-3:1998 Information technology - Security techniques - Hash-functions - Part 3: Dedicated hash-functions. RIPEMD basically is a slightly modified version of MD4 with a set of parallel rounds added. It is not much more secure than MD4 and its use is not recommended for anything but compatibility with legacy applications. http://www.iso.ch/iso/en/CatalogueDetailPage.CatalogueDetail?CSNUMBER=25428 http://link.springer.de/link/service/journals/00145/bibs/10n1p51.html http://www.ietf.org/rfc/rfc1320.txt

**•**RIPEMD160: Implements the RIPEMD160 message digest algorithm in Java as per the references below: Hans Dobbertin, Antoon Bosselaers and Bart Preneel, "RIPEMD160: A Strengthened Version of RIPEMD," 18 April 1996. A joint publication by the German Information Security Agency (POB 20 03 63, D-53133 Bonn, Germany) and the Katholieke Universiteit Leuven, ESAT-COSIC (K. Mercierlaan 94, B-3001 Heverlee, Belgium). The hash function RIPEMD-160.

**•**RSASignature_PKCS1: An abstract class to digest a message and sign/verify the resulting hash value, using any JCA MessageDigest algorithm with the RSA digital signature scheme, and the formatting and padding conventions defined by PKCS#1. These conventions are compatible with PEM (RFC-1423). References: Bruce Schneier , "Section 19.3 RSA," Applied Cryptography, 2nd edition , John Wiley & Sons, 1996. PKCS#1 RFC 1423

**•**RSASignature_PKCS1: An abstract class to digest a message and sign/verify the resulting hash value, using any JCA MessageDigest algorithm with the RSA digital signature scheme, and the formatting and padding conventions defined by PKCS#1. These conventions are compatible with PEM (RFC-1423). References: Bruce Schneier , "Section 19.3 RSA," Applied Cryptography, 2nd edition , John Wiley & Sons, 1996. PKCS#1 RFC 1423

**•**RIPEMD128: An implementation of the RIPEMD-128 algorithm as described in the references below: Hans Dobbertin, Antoon Bosselaers and Bart Preneel, "RIPEMD-160: A Strengthened Version of RIPEMD," 18 April 1996. A joint publication by the German Information Security Agency (POB 20 03 63, D-53133 Bonn, Germany) and the Katholieke Universiteit Leuven, ESAT-COSIC (K. Mercierlaan 94, B-3001 Heverlee, Belgium). Pseudo-code for RIPEMD-128

**•**PaddingPKCS5: This class implements generalized PKCS#5 padding. PKCS#5 padding is described in RSA Labs' PKCS#5 document. Their version is defined for 8 byte (64 bit) blocksizes only. This implementation handles blocksizes up to 255 bytes, hence 'Generalized PKCS#5'. This generalization is completely compatible with the original 8-byte-only PKCS#5. http://www.rsasecurity.com/rsalabs/pkcs/pkcs-5/index.html

**•**PaddingMD: This abstract class implements the MD4-like block/padding structure as it is used by most hashes (MD4, MD5, SHA-0, SHA-1, RIPEMD-128, RIPEMD-160, Tiger). This class handles the message buffering, bit counting and padding. Subclasses need implement only the three abstract functions to create a working hash. This class has three padding modes: MD5-like, SHA-like and Tiger-like. This applies to the padding and encoding of the 64-bit length counter.

**•**DevRandom: SecureRandomSpi that gets it's random bytes from the /dev/urandom PRNG on systems that support it. This Spi will only enable itself when it can read from /dev/urandom and the first 2500 bytes extracted from /dev/urandom pass some basic statistical tests. It's mandatory to check the result of the isAvailable() method before calling the constructor.

**•**RC4KeyGenerator: A key generator for RC4. Key length between 40 and 1024 bits inclusive (increments of 8). Default length is 128 bits. References: Andrew Roos <andrewr@vironix.co.za> (Vironix Software Laboratories), A Class of Weak Keys in the RC4 Stream Cipher , Preliminary draft posted to sci.crypt, 4th November 1997.

Home | Contact Us | Privacy Policy | Terms of Service |