Cryptography in Java,.NET, OS
Cryptography in Java,.NET, OS
Cryptography in Java,.NET, OS
Cryptographic services provided by Java: 1) Java cryptography Architecture(JCA): set of classes provides security. JCA is a part of default Java Application development environment. ie. Within JDK. JCA introduced in JDK version 1.1. 2) Java Cryptography Extension(JCE): not a part of core Java JDK. additional piece of software requires license. JCE and JCA are packaged together.
Cryptography in Java
Java Cryptographic Architecture(JCA): Cryptographic functionalities(Access control, permissions, key pairs, MD, DSS) provided as set of classes in a package called security. JCA is provider architecture. separates cryptographic concepts (ie interfaces) from actual
implementation.
Programming language independence is achieved through interfaces. Interface: set of functions signifies what interface can do. No implementation details. Supports plug-able architecture, ie allows to change internal details. vendor-independent and expandable.
Cryptography in Java
Interface:
Cryptography in Java
JCA package consists of number of classes: Engine class : logical representation of cryptographic functionality. Provider: actual implementation of algorithms. When JVM begins execution, consults file and loads appropriate provider classes in memory.
Cryptography in Java
JCA package:
Cryptography in Java
Key Management in JCA: Javakey utility - stores private, public keys of a user in a same unprotected DB. Keytool - stores public, private keys separately and protects them with passwords. Database used by keytool is keystore. Keytool services: Creation of key pairs and self-signed certificates. Export certificates. Issues Certificate Signing Request (CSR) to CA for requesting a certificate. Imports others certificates for signature verification.
Cryptography in Java
JCA features: getInstance(): - accepts name of the desired algorithm as an argument & returns an instance of appropriate class. Example: Implementing SHA-1 algorithm. Update(): -Pass data to update() of MD object & write to output file. Digest(): -creates MD & add it to same file.
Cryptography in Java
Java Cryptographic extension(JCE): Cryptographic functionality of encryption of data. Also based on engine classes and provider classes. Architecture of JCE is similar to JCA. JCE is free.
Cryptography in .NET
Class Model: In cryptographic object model , symmetric algorithms is modeled as single abstract base class. Abstract base class is inherited by number of abstract algorithm classes. Respective algorithm implementation classes are subclasses of abstract algorithm classes.
Cryptography in .NET
Abstract Base class: defines methods and properties common to all algorithms in this class (eg. Length of keys) Abstract Algorithm classes: (has 2 functions) algorithm-specific details.(key sizes and block sizes) define properties and methods specific to every implementation of algorithm, do not apply to other algorithms. Algorithm Implementation classes: To carry out specific action.
several procedures. Each performs its task. Any procedure could call any other procedure. Debugging and enhancing OS is a monumental task. No Information hiding. Every procedure is visible to every other procedure.