TPR 3211 Project 1 Project Title: AES in Javacard Project ID: 221 Supervisor: Mr. Safi Uddin Moderator: Mr. Murugadoss.

Slides:



Advertisements
Similar presentations
Operating Systems Components of OS
Advertisements

Java Card Programming: Overview Presented by: Raman Sharykin PISCES Group: Soumyadeb Mitra, Sruthi Bandhakavi, Ragib Hasan, Raman Sharikyn University.
Web-enabled Smart Card for Ubiquitous Access of Patients Medical Record Praveen G Puligundla.
Security of JavaCard smart card applets Erik Poll University of Nijmegen
New Security Issues Raised by Open Cards Pierre GirardJean-Louis Lanet GERMPLUS R&D.
TIE Extensions for Cryptographic Acceleration Charles-Henri Gros Alan Keefer Ankur Singla.
Introduction To Java Objectives For Today â Introduction To Java â The Java Platform & The (JVM) Java Virtual Machine â Core Java (API) Application Programming.
ASU Real-Time Operating System. Supervised by: Dr. Mohammed Sobh.
Lab Information Security Using Java (Review) Lab#0 Omaima Al-Matrafi.
The Advanced Encryption Standard (AES) Simplified.
J2ME 25 July Overview  What is J2ME?  The CLDC and CDC configurations  MIDP and MIDlets  Development Tools  Demonstrations.
Presented by : ARJUN.B.M USN: 1RL05CS007 Dept Of CSE RLJIT, Dodballapur Under the guidance of : Basavaraj.S.Pol Asst. Prof Dept of CSE, RLJIT.
Java Security Model Lab#1 I. Omaima Al-Matrafi. Safety features built into the JVM Type-safe reference casting Structured memory access (no pointer arithmetic)
FIT3105 Smart card based authentication and identity management Lecture 4.
Cryptography and Network Security
Advanced Encryption Standard(AES) Presented by: Venkata Marella Slide #9-1.
Advanced Encryption Standard. This Lecture Why AES? NIST Criteria for potential candidates The AES Cipher AES Functions and Inverse Functions AES Key.
RIJNDAEL Arta Doci University Of Colorado.
The Design of Improved Dynamic AES and Hardware Implementation Using FPGA 游精允.
Introduction to Modern Cryptography Lecture 3 (1) Finite Groups, Rings and Fields (2) AES - Advanced Encryption Standard.
VHDL AES 128 Encryption/Decryption
Cryptography and Network Security Chapter 5. Chapter 5 –Advanced Encryption Standard "It seems very simple." "It is very simple. But if you don't know.
Femto Java Developing Java applications for tiny footprint platforms Eduard de Jong QC Technology B.V. BOF 2187
Dr. Lo’ai Tawalbeh 2007 Chapter 5: Advanced Encryption Standard (AES) Dr. Lo’ai Tawalbeh New York Institute of Technology (NYIT) Jordan’s Campus.
Chapter 8.  Cryptography is the science of keeping information secure in terms of confidentiality and integrity.  Cryptography is also referred to as.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
Java Security. Topics Intro to the Java Sandbox Language Level Security Run Time Security Evolution of Security Sandbox Models The Security Manager.
CSCI 224 Introduction to Java Programming. Course Objectives  Learn the Java programming language: Syntax, Idioms Patterns, Styles  Become comfortable.
Chapter 5 Advanced Encryption Standard. Origins clear a replacement for DES was needed –have theoretical attacks that can break it –have demonstrated.
1 University of Palestine Information Security Principles ITGD 2202 Ms. Eman Alajrami 2 nd Semester
Cryptography and Network Security
Chapter 5 –Advanced Encryption Standard "It seems very simple." "It is very simple. But if you don't know what the key is it's virtually indecipherable."
Network Security. Cryptography Cryptography functions Secret key (e.g., DES) Public key (e.g., RSA) Message digest (e.g., MD5) Security services Privacy:
ANDROID Presented By Mastan Vali.SK. © artesis 2008 | 2 1. Introduction 2. Platform 3. Software development 4. Advantages Main topics.
Introduction to Interactive Media Interactive Media Tools: Software.
Introduction to Java CSIS 3701: Advanced Object Oriented Programming.
9/17/15UB Fall 2015 CSE565: S. Upadhyaya Lec 6.1 CSE565: Computer Security Lecture 6 Advanced Encryption Standard Shambhu Upadhyaya Computer Science &
LOGO Hardware side of Cryptography Anestis Bechtsoudis Patra 2010.
Introduction and Features of Java. What is java? Developed by Sun Microsystems (James Gosling) A general-purpose object-oriented language Based on C/C++
Rijndael Advanced Encryption Standard. Overview Definitions Definitions Who created Rijndael and the reason behind it Who created Rijndael and the reason.
Mrs. Ulshafer August, 2013 Java Programming Chapter 1.
National Taiwan University Department of Computer Science and Information Engineering National Taiwan University Department of Computer Science and Information.
Core Java Introduction Byju Veedu Ness Technologies httpdownload.oracle.com/javase/tutorial/getStarted/intro/definition.html.
Fifth Edition by William Stallings
Chapter 2 (C) –Advanced Encryption Standard. Origins clearly a replacement for DES was needed –have theoretical attacks that can break it –have demonstrated.
Advanced Encryption Standard Dr. Shengli Liu Tel: (O) Cryptography and Information Security Lab. Dept. of Computer.
DATA & COMPUTER SECURITY (CSNB414) MODULE 3 MODERN SYMMETRIC ENCRYPTION.
Invitation to Computer Science 5 th Edition Chapter 8 Information Security.
Lesson 1 1 LESSON 1 l Background information l Introduction to Java Introduction and a Taste of Java.
Network Security Lecture 3 Secret Key Cryptography
Introduction to Programming 1 1 2Introduction to Java.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
JAVA TRAINING IN NOIDA. JAVA Java is a general-purpose computer programming language that is concurrent, class-based, object-oriented and specifically.
Lesson 2: First Java Programs. 2.1 Why Java? Java is one of the most popular programming languages in the world. Java is a modern object-oriented programming.
1 CPCS425: Information Security (Topic 5) Topic 5  Symmetrical Cryptography  Understand the principles of modern symmetric (conventional) cryptography.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
1. Presentation Agenda  Identify Java Card Technology  Identify Elements of Java Card applications  Communicating with a Java Card Applet  Java Card.
Chapter 1 Coding Introduction.
Triple DES.
Operating System Structure
Introduction Enosis Learning.
Introduction Enosis Learning.
Chapter 1 Coding Introduction.
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
The Encryption Standards
(Computer fundamental Lab)
International Data Encryption Algorithm
Android Platform, Android App Basic Components
Objective Understand the concepts of modern operating systems by investigating the most popular operating system in the current and future market Provide.
Presentation transcript:

TPR 3211 Project 1 Project Title: AES in Javacard Project ID: 221 Supervisor: Mr. Safi Uddin Moderator: Mr. Murugadoss

Introduction

One word:CHANGE

Introduction Moore’s Law: “The number of transistors that can fit in a specific area doubles every 18 months.”

Introduction DES (Data Encryption Standard) First cracked in 1997 Record held at present is 22 hours Replaced by AES (Advanced Encryption Standard) in 2001

AES Advanced Encryption Standard Originally called Rijndael Symmetric block cipher that encrypts and decrypts data in blocks of 128 bits Specifies 3 key sizes: 128, 196 and 256 bits

AES In decimal terms, this means that there are approximately: 3.4 x possible 128-bit keys; 6.2 x possible 192-bit keys; and 1.1 x possible 256-bit keys.

AES DES key are 56 bits long There are approximately 7.2 x possible DES keys There are on the order of times more AES 128-bit keys than DES 56-bit keys

AES - Cipher Pseudocode for cipher : Cipher(byte in[4 * Nb], byte out[4 * Nb], word w[Nb * (Nr + 1)]) begin bytestate[4,Nb] state =in AddRoundKey(state, w) for round = 1 step 1 to Nr – 1 SubBytes(state) ShiftRows(state) MixColumns(state) AddRoundKey(state, w + round * Nb) end for SubBytes(state) ShiftRows(state) AddRoundKey(state, w + Nr * Nb) out = state end

AES – SubBytes(state) Non linear byte substitution S-Box

AES – SubBytes(state) For example, if s 1,1 = {53}, s’ 1,1 = {ed}

AES – ShiftRows(state) Cyclic shift of bytes in rows

AES – MixColumns(state) Columns are treated as 4 term polynomial Matrix multiplication with a fixed polynomial

AES – Inverse Cipher Pseudocode for inverse cipher : InvCipher(byte in[4 * Nb], byte out[4 * Nb], word w[Nb * (Nr + 1)]) begin bytestate[4,Nb] state = in AddRoundKey(state, w + Nr * Nb)// See Sec for round = Nr - 1 step -1 to 1 InvShiftRows(state)// See Sec InvSubBytes(state)// See Sec AddRoundKey(state, w + round * Nb) InvMixColumns(state)// See Sec end for InvShiftRows(state) InvSubBytes(state) AddRoundKey(state, w) out = state end

AES – InvShiftRows(state) Cyclic shift of bytes in rows

AES – InvSubBytes(state) Non linear byte substitution S-Box

AES – InvMixColumns(state) Columns are treated as 4 term polynomial Matrix multiplication with a fixed polynomial

Smartcard vs Javacard Must communicate with a device to gain access to a display device or network Can be plugged into a reader (card terminal) or operate using radio frequencies A smartcard is a “credit card” with a “brain” in it

Smartcard vs Javacard A Javacard is a smartcard, a smartcard is not a Javacard

Javacard There is an estimated 3 billion smartcards in the world at the present moment, and all the major smartcard players have licensed Javacard Javacard is a smart card that is capable of running programs written in Java It is designed to run on 8-bit microprocessors with as little as 256 bytes of RAM (no, I didn’t leave out the K!) and 14 kilobytes of ROM It enables the first true multi-application cards, it speeds and simplifies application development in very small memory environments

Javacard

Javacard Virtual Machine Due to limited memory resources, it is not possible to fit the JVM into Javacard 3 strategies: Small JVM is introduced Javacard API is deprecated from Java API  No threads, security manager, synchronization, multi- dimensional arrays, large primitive data types Split architecture  Bytecode at both ends – card terminal end and Javacard end

Javacard Communication with the outside world: Application Protocol Data Unit Data package (maximum size is 255 bytes) A Javacard always waits for “Command APDU” from the reader (card terminal software) Responds with “Response APDU”

Javacard Javacard Runtime Environment Contains API classes and the JVM Responsible for: applet installation and initialisation selection and deselection APDU dispatching transaction management catching unchecked exceptions assigns AID for each applet

Javacard How does it work? Java data is compiled into bytecode and sent to card reader (card terminal driver) Reader converts bytecode into card bytecode Wraps card bytecode into data package “Select APDU” to tell the Javacard to let go of current active applet and select the new current applet JCRE in Javacard will assign new applet AID Communication by “Command APDU” and “Response APDU”

AES in Javacard Why Javacard? Smart cards provide a secure, portable platform for "any time, anywhere" computing that can carry and manipulate substantial amounts of data, especially an individual's personal digital identity The Java Card API allows applications written for one card to be downloaded "in place" into any other card The Java Card thus allows smart cards to become a general-purpose computing platform and creates a potentially huge market for application software and development -- especially for financial, telecommunications, television, and security applications

AES in Javacard Why AES in Javacard? Increasingly, physical keys are being replaced by cryptographic keys, which are typically a thousand bits in size Modern smart cards are the ideal carriers for such keys, because they have enough computing power to do the necessary encryption or decryption on-card, so that the secret key never has to leave the card One of the reasons Rijndael was chosen as AES was because of its efficiency in low memory environments

AES in Javacard Hardware Specifications:

AES in Javacard Hardware Specifications: GemPC-410 card reader GemXpresso RAD III PK IS Javacard USB to Serial converter

AES in Javacard GUI Card Terminal Application Ocean SDK (optional) Gemplus GemPC-410 Card Terminal Driver Gemplus GemXpresso RAD III PK IS Kernel Windows 98 JDK Inprise JBuilder 3.5 Card Terminal Application AES Javacard applet

AES in Javacard Software Specifications: Windows 98 JDK1.2.2 Inprise JBuilder 3.5 Gemplus GemXpresso RAD III PK IS Kernel Gemplus GemPC-410 Card terminal driver (OCF with PC/SC bridge)

AES in Javacard Solution methods: Research into the protocols, standards involved in project Implementation of an AES applet model on a Java platform Design and coding of a Javacard applet, test run on a simulation environment (Gemplus Simulation Environment) Design and coding of card terminal application Test run both Javacard applet and card terminal application

AES in Javacard Prototype development phase 1: Tested applet security sandbox with an applet to read c:\autoexec.bat

AES in Javacard After creating keystore, signing applet and specifying permission in policy file, applet can be run

AES in Javacard Prototype development phase II: Figure: splash screen of prototype

AES in Javacard Figure: encryption screen 1 of prototype

AES in Javacard Figure: encryption screen 2 of prototype

AES in Javacard Figure: decryption screen 1 of prototype

AES in Javacard Figure: decryption screen 2 of prototype

AES in Javacard Prototype behaviour: Encryption longer than decryption

AES in Javacard Implementation plan for coming trimester: Choose between OCF and PC/SC Develop Javacard applet Run Javacard applet using GSE (Gemplus Simulation Environment) simulator to determine memory requirement, implementation errors, flow of communication, etc. Develop Card Terminal Application using OCF or PC/SC platform.

AES in Javacard Conclusion: AES in Javacard is a new platform, a new method, a new thinking.

AES in Javacard

THE END Thank you for your attention