MobileJava METhe First Security System For All Java Wireless Applications

The First Security System For All Java Wireless Applications

Developer.com content and product recommendations are editorially independent. We may make money when you click on links to our partners. Learn More.

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.

“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.”

NTRU lists a number of benefits from Neo for Java. These include:

  • Elimination of the historic trade-offs between performance and security, making it possible to deliver wireless applications and services that are both secure and fast.
  • Practical and powerful public-key security never before possible in space-constrained wireless devices and applications. Brings powerful security for the first time to wireless devices and applications.
  • Ability to develop secure, Java-based business and financial wireless applications such as wireless banking, payment and trading.
  • Increased flexibility in their wireless designs. Service providers and operating system providers are enabled to deliver secure business and financial applications to their customers.

The NTRU Neo for Java API in Use

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.

  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

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.

Interface:

  • NTRU Encrypt: Accepts block of plaintext and NTRU public encryption key. Does an asymmetric encryption of that block and returns the encrypted cipher-text.
  • NTRU Decrypt: Accepts cipher-text and NTRU private encryption key. Does an asymmetric decryption of the cipher-text and returns the resulting block of plaintext.
  • NTRU Encryption Key Generation: Accepts an optional passphrase. Generates and returns the encryption public/private keypair.
  • NTRU Message Digest: Accepts a document (any block of data) and generates a message digest that can be signed via the NTRU Sign method. Note that it can create a single message digest based on blocks of data that are non-contiguous in memory. Note also that this is an interface layer on top of SHA.
  • NTRU Sign: Accepts a message digest and NTRU private signing key. Generates and returns a signature of that document.
  • NTRU Verify: Accepts a message digest, a signature, and a NTRU public signing key. Returns a byte indicating the results of the verification (success or failure).
  • SHA: Accepts a single or multiple blocks of data and generates a SHA-1 hash of that data.
  • AES: Generates a Symmetric Key (based on input key data). Does a symmetric encryption on a single block of data or does a symmetric encryption on multiple blocks of data using CBC or ECB. Does a symmetric decryption of single or multiple encrypted blocks.
  • Random Number Generation: Initializes the Random Number Generator with a seed, updates the random number generator with a new random source, and provides random bytes. The Random Number Generator follows the ANSI X9.82 specification.

About NTRU

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.

# # #

Get the Free Newsletter!

Subscribe to Developer Insider for top news, trends & analysis

Latest Posts

Related Stories