SeChat: An AES Encrypted Chat



Similar documents
Efficient Software Implementation of AES on 32-bit Platforms

Switching between the AES-128 and AES-256 Using Ks * & Two Keys

The Advanced Encryption Standard (AES)

IJESRT. [Padama, 2(5): May, 2013] ISSN:

Implementation of Full -Parallelism AES Encryption and Decryption

Secret File Sharing Techniques using AES algorithm. C. Navya Latha Garima Agarwal Anila Kumar GVN

Design and Verification of Area-Optimized AES Based on FPGA Using Verilog HDL

The Advanced Encryption Standard (AES)

Enhancing Advanced Encryption Standard S-Box Generation Based on Round Key

Survey on Enhancing Cloud Data Security using EAP with Rijndael Encryption Algorithm

CS 758: Cryptography / Network Security

Network Security. Omer Rana

Separable & Secure Data Hiding & Image Encryption Using Hybrid Cryptography

The Advanced Encryption Standard: Four Years On

Combining Mifare Card and agsxmpp to Construct a Secure Instant Messaging Software

Network Security. Security. Security Services. Crytographic algorithms. privacy authenticity Message integrity. Public key (RSA) Message digest (MD5)

CSCE 465 Computer & Network Security

Parallel AES Encryption with Modified Mix-columns For Many Core Processor Arrays M.S.Arun, V.Saminathan

Rijndael Encryption implementation on different platforms, with emphasis on performance

AES Power Attack Based on Induced Cache Miss and Countermeasure

Network Security - ISA 656 Introduction to Cryptography

AES Cipher Modes with EFM32

Improving Performance of Secure Data Transmission in Communication Networks Using Physical Implementation of AES

AN IMPLEMENTATION OF HYBRID ENCRYPTION-DECRYPTION (RSA WITH AES AND SHA256) FOR USE IN DATA EXCHANGE BETWEEN CLIENT APPLICATIONS AND WEB SERVICES

Modern Block Cipher Standards (AES) Debdeep Mukhopadhyay

Hardware Implementation of AES Encryption and Decryption System Based on FPGA

Fast Implementations of AES on Various Platforms

Design and Implementation of Asymmetric Cryptography Using AES Algorithm

Online signature API. Terms used in this document. The API in brief. Version 0.20,

Lecture 4 Data Encryption Standard (DES)

Cryptography and Network Security. Prof. D. Mukhopadhyay. Department of Computer Science and Engineering. Indian Institute of Technology, Kharagpur

International Association of Scientific Innovation and Research (IASIR) (An Association Unifying the Sciences, Engineering, and Applied Research)

ELECTENG702 Advanced Embedded Systems. Improving AES128 software for Altera Nios II processor using custom instructions

Cryptography and Network Security

Overview of Cryptographic Tools for Data Security. Murat Kantarcioglu

Chapter 8. Network Security

FPGA IMPLEMENTATION OF AN AES PROCESSOR

Advanced Encryption Standard by Example. 1.0 Preface. 2.0 Terminology. Written By: Adam Berent V.1.7

A PERFORMANCE EVALUATION OF COMMON ENCRYPTION TECHNIQUES WITH SECURE WATERMARK SYSTEM (SWS)


Advanced Encryption Standard by Example. 1.0 Preface. 2.0 Terminology. Written By: Adam Berent V.1.5

Chapter 11 Security+ Guide to Network Security Fundamentals, Third Edition Basic Cryptography

Area Optimized and Pipelined FPGA Implementation of AES Encryption and Decryption

The implementation and performance/cost/power analysis of the network security accelerator on SoC applications

CIS433/533 - Computer and Network Security Cryptography

Network Security. Chapter 3 Symmetric Cryptography. Symmetric Encryption. Modes of Encryption. Symmetric Block Ciphers - Modes of Encryption ECB (1)

MarshallSoft AES. (Advanced Encryption Standard) Reference Manual

1 Data Encryption Algorithm

AES 128-Bit Implementation with Z8 Encore! XP Microcontrollers

Table of Contents. Bibliografische Informationen digitalisiert durch

Implementation and Design of AES S-Box on FPGA

How To Understand And Understand The History Of Cryptography

Efficient Software Implementation of AES on 32-Bit Platforms

A Study of New Trends in Blowfish Algorithm

Data Integrity by Aes Algorithm ISSN

THIRD PARTY AUDITING SYSTEM FOR CLOUD STORAGE

How encryption works to provide confidentiality. How hashing works to provide integrity. How digital signatures work to provide authenticity and

Pavithra.S, Vaishnavi.M, Vinothini.M, Umadevi.V

Online Mobile Cloud Based Compiler

7! Cryptographic Techniques! A Brief Introduction

Cyber Security Workshop Encryption Reference Manual

How To Attack A Block Cipher With A Key Key (Dk) And A Key (K) On A 2Dns) On An Ipa (Ipa) On The Ipa 2Ds (Ipb) On Pcode)

Overview of Symmetric Encryption

Purpose Computer Hardware Configurations... 6 Single Computer Configuration... 6 Multiple Server Configurations Data Encryption...

The Encryption Technology of Automatic Teller Machine Networks

Implementing Enhanced AES for Cloud based Biometric SaaS on Raspberry Pi as a Remote Authentication Node

CSci 530 Midterm Exam. Fall 2012

CLOUD COMPUTING SECURITY ARCHITECTURE - IMPLEMENTING DES ALGORITHM IN CLOUD FOR DATA SECURITY

Keywords Web Service, security, DES, cryptography.

Block encryption. CS-4920: Lecture 7 Secret key cryptography. Determining the plaintext ciphertext mapping. CS4920-Lecture 7 4/1/2015

Cryptography and Network Security Prof. D. Mukhopadhyay Department of Computer Science and Engineering Indian Institute of Technology, Kharagpur

Design and Analysis of Parallel AES Encryption and Decryption Algorithm for Multi Processor Arrays

AVR1318: Using the XMEGA built-in AES accelerator. 8-bit Microcontrollers. Application Note. Features. 1 Introduction

lundi 1 octobre 2012 In a set of N elements, by picking at random N elements, we have with high probability a collision two elements are equal

Provisioning of Compression and Secure Management Services for Healthcare Data in Cloud Computing

A Survey on Performance Analysis of DES, AES and RSA Algorithm along with LSB Substitution Technique

Performance Evaluation of AES using Hardware and Software Codesign

Area optimized in storage area network using Novel Mix column Transformation in Masked AES

Network Security. Modes of Operation. Steven M. Bellovin February 3,

Protect Integrity of Data in Cloud Assisted Privacy Preserving Mobile Health Monitoring

Implementation of Advance Encryption Standard (AES) in Biometric Electronic Voting Software

AStudyofEncryptionAlgorithmsAESDESandRSAforSecurity

Lecture 8: AES: The Advanced Encryption Standard. Lecture Notes on Computer and Network Security. by Avi Kak

SECURITY IN SMARTPHONES AND TABLETS

Developing and Investigation of a New Technique Combining Message Authentication and Encryption

How To Encrypt With A 64 Bit Block Cipher

AES1. Ultra-Compact Advanced Encryption Standard Core. General Description. Base Core Features. Symbol. Applications

A HARDWARE IMPLEMENTATION OF THE ADVANCED ENCRYPTION STANDARD (AES) ALGORITHM USING SYSTEMVERILOG

Lecture 9: Application of Cryptography

A VHDL Implemetation of the Advanced Encryption Standard-Rijndael Algorithm. Rajender Manteena

AESvisual: A Visualization Tool for the AES Cipher

A New Digital Encryption Scheme: Binary Matrix Rotations Encryption Algorithm

White Paper. Shay Gueron Intel Architecture Group, Israel Development Center Intel Corporation

Transcription:

Name: Luis Miguel Cortés Peña GTID: 901 67 6476 GTG: gtg683t SeChat: An AES Encrypted Chat Abstract With the advancement in computer technology, it is now possible to break DES 56 bit key in a meaningful time period. In order to secure information with today s technology, encryption algorithms with longer keys are needed. The National Institute of Standards and Technology (NIST) accepted the encryption/decryption algorithm known as Rijndael as the Advanced Encryption Standard. This standard allows for encryption of 128 bit blocks using 128, 192, or 256 bit keys. Advantages of AES include low memory requirement and fast in both software and hardware. In this paper, the operation of AES is explained and an implementation of an AES encrypted chat (called SeChat) written in Java is given. Introduction AES operates on a 4x4 array of bytes (referred to as state ). The algorithm consists of performing four different simple operations. These operations are: SubBytes ShiftRows MixColumns AddRoundKey SubBytes perform byte substitution which is derived from a multiplicative inverse of a finite field. ShiftRows shifts elements from a given row by an offset equal to the row number. The MixColumns step transforms each column using an invertible linear transformation. Finally, the AddRoundKey step takes a 4x4 block from a expanded key (derived from the key), and XORs it with the state. AES is composed of four high level steps. These are: 1. Key Expansion 2. Initial Round 3. Rounds 4. Final Round The Key Expansion step is performed using Rijndael s key schedule (see http://en.wikipedia.org/wiki/rijndael_key_schedule ). The Initial Round consists only of an

AddRoundKey operation. The Rounds step consists of a SubBytes, ShiftRows, MixColumns, and an AddRoundKey operation. The number of rounds in the Rounds step varies from 10 to 14 depending on the key size. Finally, the Final Round performs a SubBytes, ShiftRows, and an AddRoundKey operations. Decryption in AES is done by performing the inverse operations of the simple operations in reverse order. However, as shown later on in this paper, because of the block cipher mode of operation used, decryption was implemented but never used. More information on AES can be found on: http://csrc.nist.gov/publications/fips/fips197/fips 197.pdf and http://en.wikipedia.org/wiki/advanced_encryption_standard Implementation The AES algorithm is implemented from scratch using Java. First, the algorithm is tested by encrypting and decrypting a single 128 bit block. After having an operational block cipher, the next step is to embed this block cipher in a block cipher modes of operation. Cipher feedback (CFB) shown in Figure 1 and Figure 2, is chosen since the message does not have to be padded to a multiple of the cipher block size while preventing some manipulation of the cipher text. Figure 1: Encryption using Cipher Feedback (CFB).

Figure 2: Decryption using Cipher Feedback (CFB). As can be observed from Figure 1 and Figure 2, CFB only requires encrypting for both encrypting and decrypting modes of operation. The Initialization Vector (IV) was generated from a SHA 256 message digest of a string concatenated with a time stamp. Only the first 128 bits were used for the Initialization Vector. The Initiation Vector is transmitted without encryption, and only on the first transmission. Subsequent transmissions use the previously transmitted block as an input to the block cipher encryption. SeChat provides two capabilities. The first, and most obvious, is the capability to chat using SeChat. Figure 3 shows SeChat in an ongoing conversation.

Figure 3: Graphical User Interface of SeChat. The input to the Key shown in Figure 3 can be any string. This string is then used to generate SHA 256 message digest, which gets truncated depending on the number of bits selected for the key length. SeChat supports 128, 192, and 256 as the standard specifies. The second capability of SeChat is the capability to encrypt a message and output the message in Hex which can be copied and sent over email. Figure 4 below shows SeChat being used for encrypting and decrypting a Hex message.

Figure 4: SeChat encrypting to Hex (left, Host OS) and decrypting from Hex (right, Guest OS). In the case that the key is mismatched, the output becomes unreadable. An example of this is shown in Figure 5 where the Host OS user uses key a shared secret while the Guest OS user uses key another shared secret.

Figure 5: SeChat encrypting to Hex (left, Host OS) and decrypting from Hex (right, Guest OS) with mismatched secret keys. Included in the SeChat.rar are the following files: AES.java Source code for the AES encrypting/decrypting algorithm, run this file for encrypting/decrypting demo. SeChatPanel.java Source code for the Java Application version of SeChat (as shown in Figure 3, Figure 4, and Figure 5) SeChat.java Source code for the Java Applet version of SeChat. SeChat.jar The executable packed version of the whole package, it executes SeChatPanel. Run this file to execute SeChat.

Conclusion In this paper, a quick overview of AES was presented. More importantly, SeChat, an AES encrypted chat written in Java was introduced. The two capabilities of SeChat, namely chat and encrypt/decrypt to/from Hex, were presented. The case of having different keys in the chat, which results in illegible text, was also shown. A disadvantage of using SeChat is that the shared key has to be agreed on in advance. However, this can be overcome by using public key encryption on top of AES for to agree on a key to use. Implementation of public key encryption in conjunction to the AES encryption is left as future work.