http://www.developer.com/ws/j2me/article.php/1370131/The-First-Security-System-For-All-Java-Wireless-Applications.htm
Security continues to be one of the biggest challenges facing developers. The need to build secure applications with secure information is critical for many businesses today. As applications once again evolve to smaller platforms that are constrained in regard to resources, consideration must be given to the robustness of the application - including its security - versus being too large or too bulky. Today, NTRU announces NTRU Neo for Java, a developer toolkit - the first public-key security system designed for all wireless devices and applications. According to NTRU, up until now it has been impossible to secure Java-enabled wireless devices and applications in a practical manner, due to size and speed constraints. NTRU states that Neo for Java is the smallest and fastest public key-based Java security product in the world. NTRU states that it is possible to running at speeds 100 times faster than legacy security systems. Additionally, they require only 1/50th of the footprint at roughly 5k. NTRU technology enables security on all Java-enabled wireless devices and applications. It is small enough to fit in space-constrained wireless environments like mobile phones and handhelds, yet as powerful as enterprise class security. With many of the major handset manufactures having announced support for Java, a small-scale, robust security system is needed. NTRU lists a number of benefits from Neo for Java. These include: The following is an example of using the Neo for Java Interface for Encrypt/Decrypt operations. Although this is not a typical usage of public key technology, this example shows the simplicity of the interface. As mentioned previously, Neo for Java offers a fast, small public key cryptographic systemthe smallest in the world. Depending on your security, size, and speed requirements, the implementation of the Neo for Java API into your wireless applications can be relatively easy. The following list presents some of the API functionality. At this time it supports NTRU-251, which is roughly equivalent to RSA-1024 security level. NTRU is a provider of security that fits everywhere. Headquartered in Burlington, Mass., NTRU is backed by Texas Instruments, Sony Corporation, Macrovision, Lehman Brothers Venture Capital, Investor AB, Granite Ventures, Greylock, CTT and 3i. NTRU delivers strong, fast security that operates with minimal power consumption and fits into a tiny footprint, making it easy for customers to build devices that people trust. NTRU security is being adopted in the wireless, radio frequency identification (RFID), mobile communications, multimedia and embedded markets. For more information, visit www.ntru.com. # # #
The First Security System For All Java Wireless Applications
June 24, 2002
"With its new Neo Java offering, NTRU addresses two of the most important requirements for mass adoption of wireless applications and services --strong security and platform portability," said Warren Wilson, Wireless Practice director at Boston-based Summit Strategies. "Java specifically J2ME -- is rapidly becoming the de facto platform for mobile and wireless devices from smart phones to PDAs, and NTRU's high-performance, small-footprint encryption technology is well-suited to protect even the most sensitive information on these resource-constrained devices. Wireless carriers, device makers and application developers will all appreciate this combination of capabilities."
The NTRU Neo for Java API in Use
Context ctx = new Context(rn); String stringtoencrypt = "NTRU is fast crypto!!"; byte[] plaintext = stringtoencrypt.getBytes(); // Generate the encryption keys. Note that EncKeys ekeys = new EncKeys(ctx, NTRUConst.NTRU_KEYSTRENGTH_251, NTRUConst.NTRU_SHA160_HASH); // Allocate space for the ciphertext. byte[] ciphertext = new byte[ekeys.ciphertextSize(NTRUConst.NTRU_KEYSTRENGTH_251)]; // Encrypt the plaintext string. ekeys.blockEncrypt(ctx, plaintext, 0, plaintext.length, ciphertext, 0); // Allocate space for the decrypted plaintext. int plntxtlen = ekeys.blockSize(NTRUConst.NTRU_KEYSTRENGTH_251); byte[] decryptedData = new byte[plntxtlen]; // Decrypt the data. ekeys.blockDecrypt(ctx, ciphertext, 0, ciphertext.length, decryptedData, 0); // The result is in the decryptedData byte array
Interface:
About NTRU