Capabilities and Performance of a JCE Implementation ofNTRU Public Key CryptosystemProject SpecificationECE 646, Fall 2005Professor Kris GajGeorge Mason UniversityAuthors:Krishnapriya Kadati ([email protected])KarthikaDeepthi Bhimavarapu ([email protected])George Koodarappally ([email protected])Introduction:NTRU is an emerging public key cryptosystem that uses polynomial algebra andarithmetic modulo a small integer p and a large integer q [7]. In the scope of this projectwe will compare the capabilities and performance of a pure Java JCE implementation, aJNI based C/C++ native implementation and a pure Visual C++ implementation..Implementation Environment:Java and C/C++ will be used for the implementation. The JCE Implementation will usethe Java 2 Standard Edition 5.0 JDK API. Visual Studiio .NET 2003 will be used fordeveloping the C/C++ native implementation. All code will be developed and executedon a Pentium IV workstation running Windows XP/2000.Additional Software Needed:All Java/C/C++ source code will be developed from scratch based on published literatureon NTRU. M.I.R.A.C.L library may be used to test correctness of developedmathematical operations.Input/Output Specification:The NTRU cryptosystem uses three integers (N, p, q) as operational parameters thatdetermine the security of the system. A message m is a polynomial of degree N-1 whosecoefficients are reduced modulo p. The polynomials are represented by their coefficients.Capabilities and Performance of a JCE Implementation of NTRU Public Key Cryptosystem 1Functionality:The NTRU functionality that will be implemented will include Key Generation,Encryption, Decryption as in NTRUEncrypt and Authentication as in NTRUSign.Key Generation in NTRU involves the generation of a private/public key pair which is inthe form of polynomials of degree N-1. The degree of the polynomials used determinesthe strength of the Cryptosystem. The higher the degree the higher the security.The messages are encrypted by the sender using the public key of the receiver anddecrypted by the receiver using their private key.Test Plan:The functionality testing will cover Key Generation, Encryption, Decryption and Authentfunctionality. The performance testing will compare the performance of the differentimplementations using foue typical operational Input Parameters that cover Moderate,Standard, High and Highest Security levels.The input test vector for functionality testing will be (N: 11, q: 32, p: 3)The input test vectors for performance testing the different security scenarios will be asfollows:Security Level Nq pModerate Security 167 128 3Standard Security 251 128 3High Security 347 128 3Highest Security 503 256 3The Input Message will be in the form of a polynomial of degree N-1 with thecoefficients reduced modulo p above. Plan of Experiments:Develop and Test pure Java Implementation of NTRUEncrypt and NTRUSignDevelop and Test Visual C++ Implementation of NTRUEncrypt and NTRUSignDevelop and Test JNI C/C++ Implementation of NTRUEncrypt and NTRUSign Time Schedule:September 12 Select initial choice of project topicsCapabilities and Performance of a JCE Implementation of NTRU Public Key Cryptosystem 2September 19 Select final choice of project topicSeptember 25 Submit first version of project specificationOctober 01 Submit final project specificationOctober 17 First progress reportOctober 24 Develop Java Implementation of NTRUEncrypt using JCE October 31 Develop Visual C++ Implementation of NTRUEncryptNovember 07 Develop JNI C/C++ Implementation of NTRUEncryptNovember 14 Second progress reportNovember 21 Develop Java Implementation of NTRUSign using JCE November 28 Develop Visual C++ Implementation of NTRUSign December 05 Develop JNI C/C++ Implementation of NTRUSignDecember 05 Final progress report with draft of final viewgraph presentationDecember 12 Submit final project reportDecember 19 Final oral presentationList of Possible Specification Changes:The JNI C/C++ Implementation of NTRUSign is conditional on the timely completion ofthe Java and C++ implmentations of NTRUSign.List of Literature:[1] Java Cryptography Extension (JCE) (http://java.sun.com/products/jce/), SunMicrosystems, Inc.2004[2] D. Hook, Beginning Cryptography with Java. Indianapolis, IN: Wiley Publishing,Inc. 2005[3] Java Cryptography Extension (JCE) for the Java 2 Standard Edition 5.0 DevelopmentKit (JDK 5.0), API Specification, Sun Microsystems, Inc.2004[4] C. Whelan, A. Dufy, A. Burnett, T. Dowling, "A Java API for PolynomialArithmetic", Proceedings of the 2nd Internatioal conference on Principles and practiceof programming in Java, Kilkenny City, Ireland, June 16 – 18, 2003, pp 139 – 144[5] NTRU CryptoLab Home (Online), ( http://www.ntru.com/cryptolab/index.htm) ,NTRU Cryptosystems, Inc.[6] NTRU CryptoLab Articles (Online), ( http://www.ntru.com/cryptolab/articles.htm) ,NTRU Cryptosystems, Inc.[7] Jeffrey Hoffstein, Jill Pipher, Joseph H. Silverman, “NTRU: A Ring Based PublicKey Cryptosystem” (PDF), ( http://www.ntru.com/cryptolab/pdf/ANTS97.pdf ),Algorithmic Number Theory (ANTS III), Portland, OR, June 1998, J.P. Buhler (ed.),Lecture Notes in Computer Science 1423, Springer-Verlag, Berlin, 1998, 267-288 [8] J. Hoffstein, J. Silverman, “Optimizations for NTRU” (PDF), (http://www.ntru.com/cryptolab/pdf/TECH_ARTICLE_OPT.pdf ), Public-KeyCryptography and Computational Number Theory (Warsaw, September 11-15, 2000[9] J. Hoffstein, J. Silverman, “Random Small Hamming Weight Products WithApplications to Cryptography” (PDF), (Capabilities and Performance of a JCE Implementation of NTRU Public Key Cryptosystem 3http://www.ntru.com/cryptolab/pdf/TECH_ARTICLE_RAND.pdf ).[10] D. Bailey, D. Coffin, A. Elbirt, J. Silverman, A. Woodbury, “NTRU in ConstrainedDevices” (PDF), ( http://www.ntru.com/cryptolab/pdf/ntruches2001.pdf ), Proc.Cryptographic Hardware and Embedded Systems, Paris, France, 2001[11] NTRU CryptoLab Tutorials (Online), (http://www.ntru.com/cryptolab/tutorials.htm ) , NTRU Cryptosystems, Inc.[12] Algebra Tutorial (Online), ( http://www.ntru.com/cryptolab/tutorial_algebra.htm )[13] The NTRU Public Key Cryptosystem (Online), (http://www.ntru.com/cryptolab/tutorial_pkcs.htm ) [14] The NTRU Public Key Cryptosystem: Enhancements I (Online), (http://www.ntru.com/cryptolab/tutorial_advanced.htm ).[15] The NTRU Public Key Cryptosystem: Enhancements II (Online), (http://www.ntru.com/cryptolab/tutorial_hamming.htm )[16] NTRU CryptoLab NTRU Algorithms, NTRUSign
View Full Document