This document gives references for a collection of cryptographic algorithms. Each algorithm is assigned a standard ASCII name, and zero or more aliases. The intention is for each algorithm to be specified in sufficient detail that independent implementations will be able to interoperate.
The list has been designed initially for use by the Java Cryptography Architecture, but should be useful in any situation where a convention is needed for referring to algorithms by a string. It can also serve as a source of references for definitions and cryptanalysis of various algorithms. The intention is to develop API mappings for languages other than Java in future (probably based on existing cryptography libraries).
These documents use the terms "MUST", "SHOULD", and "MAY", and their negated forms, as defined in RFC 2119. These terms apply to crypto algorithm and library implementations that are intended to conform to some subset of SCAN.
In addition, the terms "WILL" and "WILL NOT" specify consistency requirements and policies for SCAN itself. If it is stated that something WILL be true, but it is not actually true, please report it as an error. New SCAN entries or changes to existing entries must satisfy all WILL and WILL NOT constraints.
The term "byte" always refers to an 8-bit byte, or octet. The value of a byte is an integer between 0 and 255 inclusive.
In algorithm descriptions,
The accompanying SCAN Conventions document includes other important information on the conventions used in compiling this list, which you should read before relying on it for any significant application. Also see these suggestions for cryptosystem designers.
The following are very useful resources for a wide range of algorithms:
Mac(Message Authentication Codes)
PRF(Pseudo Random Functions) *
* Experimental; not in JCE 1.2.
This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English.
The limited permissions granted above are perpetual and will not be revoked by the copyright holders or their successors or assigns.
This document and the information contained herein is provided on an "AS IS" basis and THE AUTHORS AND CONTRIBUTORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
Author and current maintainer:
David Hopwood <firstname.lastname@example.org>
"Java" is a registered trademark of Sun Microsystems, Inc.
"DESX", "RC2", "RC4", "RC5", "RC6", "MD2", "MD4", and "MD5" are registered trademarks of RSA Security, Inc.
"CAST5", "CAST-128", and "CAST-256" are registered trademarks of Entrust Technologies, Inc.
"Diamond2 Block Cipher" is a trademark of Michael Paul Johnson.
"IDEA" is a registered trademark of Mediacrypt.
Other brand, product, and algorithm names may be trademarks or registered trademarks of their respective holders.
|Copyright and trademarks|