Improving Encryption Algorithms Betty Huang Computer Systems Lab 2009-2010.

Slides:



Advertisements
Similar presentations
Lecture 7 Overview. Advanced Encryption Standard 10, 12, 14 rounds for 128, 192, 256 bit keys – Regular Rounds (9, 11, 13) – Final Round is different.
Advertisements

Conventional Encryption: Algorithms
Chap. 5: Advanced Encryption Standard (AES) Jen-Chang Liu, 2005 Adapted from lecture slides by Lawrie Brown.
CS 483 – SD SECTION BY DR. DANIYAL ALGHAZZAWI (3) Information Security.
About a new generation of block ciphers and hash functions - DN and HDN Vlastimil Klíma Independent consultant
1 CIS 5371 Cryptography 5b. Pseudorandom Objects in Practice Block Ciphers.
Cryptography and Network Security Chapter 3
Symmetric Encryption Example: DES Weichao Wang. 2 Overview of the DES A block cipher: – encrypts blocks of 64 bits using a 64 bit key – outputs 64 bits.
Hash functions a hash function produces a fingerprint of some file/message/data h = H(M)  condenses a variable-length message M  to a fixed-sized fingerprint.
AES clear a replacement for DES was needed
Information Security and Management 11
1 Overview of the DES A block cipher: –encrypts blocks of 64 bits using a 64 bit key –outputs 64 bits of ciphertext A product cipher –basic unit is the.
1 Pertemuan 06 Kriptografi tradisional Matakuliah: H0242 / Keamanan Jaringan Tahun: 2006 Versi: 1.
CSE331: Introduction to Networks and Security Lecture 18 Fall 2002.
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.
Computer Networking Lecture 21: Security and Cryptography Thanks to various folks from , semester’s past and others.
Lecture 23 Symmetric Encryption
Cryptography1 CPSC 3730 Cryptography Chapter 11, 12 Message Authentication and Hash Functions.
Cryptography and Network Security Chapter 11 Fifth Edition by William Stallings Lecture slides by Lawrie Brown.
1 Message Authentication and Hash Functions Authentication Requirements Authentication Functions Message Authentication Codes Hash Functions Security of.
Chapter 8.  Cryptography is the science of keeping information secure in terms of confidentiality and integrity.  Cryptography is also referred to as.
Data Encryption Standard (DES). Symmetric Cryptography  C = E(P,K)  P = D(C,K)  Requirements  Given C, the only way to obtain P should be with  the.
Cryptanalysis. The Speaker  Chuck Easttom  
Chapter 5 Advanced Encryption Standard. Origins clear a replacement for DES was needed –have theoretical attacks that can break it –have demonstrated.
HASH Functions.
Hash Functions A hash function H accepts a variable-length block of data M as input and produces a fixed-size hash value h = H(M) Principal object is.
Software Security Seminar - 1 Chapter 14. Still Other Block Ciphers 발표자 : 최두호 Applied Cryptography.
Crypto Bro Rigby. History
Advance Encryption Standard. Topics  Origin of AES  Basic AES  Inside Algorithm  Final Notes.
Chapter 20 Symmetric Encryption and Message Confidentiality.
Chapter 20 Symmetric Encryption and Message Confidentiality.
Improving Encryption Algorithms Betty Huang Computer Systems Lab
Hashing Algorithms: Basic Concepts and SHA-2 CSCI 5857: Encoding and Encryption.
Block ciphers Structure of a multiround block cipher
Cryptography Team Presentation 2
Computer Security: Principles and Practice First Edition by William Stallings and Lawrie Brown Lecture slides by Lawrie Brown Chapter 2 – Cryptographic.
“Implementation of a RC5 block cipher algorithm and implementing an attack on it” Cryptography Team Presentation 1.
Description of a New Variable-Length Key, 64-Bit Block Cipher (BLOWFISH) Bruce Schneier BY Sunitha Thodupunuri.
Lecture 23 Symmetric Encryption
1 Symmetric key cryptography: DES DES: Data Encryption Standard US encryption standard [NIST 1993] 56-bit symmetric key, 64 bit plaintext input How secure.
Cryptographic Hash Functions Prepared by Dr. Lamiaa Elshenawy
The RC5 Encryption Algorithm: Two Years On Lisa Yin RC5 Encryption –Ron Rivest, December 1994 –Fast Block Cipher –Software and Hardware Implementations.
Chapter 2 Symmetric Encryption.
DATA & COMPUTER SECURITY (CSNB414) MODULE 3 MODERN SYMMETRIC ENCRYPTION.
The RC6 Block Cipher: A simple fast secure AES proposal
Conventional Encryption Chapter 4. Multiple DES Advantage of extra stages –Each stage gives 56 more bits of key length –Double DES subject to meet-in-the-middle.
Dr. Lo’ai Tawalbeh summer 2007 Chapter 6: Contemporary Symmetric Ciphers Dr. Lo’ai Tawalbeh New York Institute of Technology (NYIT) Jordan’s Campus INCS.
RC6: The Simple Cipher Presenter: Morgan Monger. RC6 Cipher Created by Ronald Rivest et al. for AES submission Follows the evolution of RC5 cipher –Parameterized.
IT 221: Introduction to Information Security Principles Lecture 5: Message Authentications, Hash Functions and Hash/Mac Algorithms For Educational Purposes.
CST 312 Pablo Breuer. A block of plaintext is treated as a whole and used to produce a ciphertext block of equal length Typically a block size of 64 or.
The RC6 Block Cipher: A simple fast secure. Design Philosophy u Leverage our experience with RC5: use data-dependent rotations to achieve a high level.
Provides Confidentiality
Blowfish Algorithm.
Unit 2 “Implementation of a RC5 block cipher algorithm and implementing an attack on it”
Cryptography Team Presentation 1
Analysis of the RSA Encryption Algorithm
Hash Function Requirements
CRYPTOGRAPHY & NETWORK SECURITY
Stream Cipher Structure
Simple Hash Functions Network Security.
Presentation transcript:

Improving Encryption Algorithms Betty Huang Computer Systems Lab

Abstract Modern algorithms often employ sophisticated technology that involve powerful processors, which require a great deal of effort to break. During second quarter, I explored cryptanalysis of various encryption standards, ranging from SHA to MD5 and finally to RC5. In this quarter, I have been working on research and implementation of code that attacks the RC5 encryption algorithm, and have managed to write a successful"known- plaintext" attack against the RC5.

Background Purpose of Encryption Algorithms One-way functions Hash functions: MD5, SHA family Block Cipher: DES, Blowfish

Block Ciphers A block cipher consists of two paired algorithms, one for encryption, E, and the other for decryption, E-1. Both algorithms accept two inputs: an input block of size n bits and a key of size k bits, yielding an n-bit output block. For any one fixed key, decryption is the inverse function of encryption, so that for any block M and key K. M is termed the plaintext and C the ciphertext.

RC5: Goals symmetric block cipher suitable for hardware or software fast adaptable to processors of different word-lengths iterative variable number of rounds. security variable-length cryptographic key Simple Low memory requirement High security (?)

Features of RC5 Data Dependent Rotation - which simply means that the rotation amounts are random variables that arise from the input, rather than predetermined constants. – Increases security against differential/linear cryptanalysis Simplicity – only three operations (XOR,

Notation 1. Two's complement addition of words, denoted by “+". This is modulo-2w addition. The inverse operation, subtraction, is denoted “-”. 2. Bit-wise exclusive-OR of words, denoted by ⊕. 3. A left-rotation (or “left-spin") of words: the cyclic rotation of word x left by y bits is denoted x << y. Here y is interpreted modulo w, so that when w is a power of two, only the lg(w) low-order bits of y are used to determine the rotation amount. The inverse operation, right-rotation, is denoted x >> y.

RC5 Encryption Algorithm

Development 1. Coding of RC5 (weakened): … void RC5_ENCRYPT(WORD *pt, WORD *ct) { WORD i, A=pt[0]+S[0], B=pt[1]+S[1]; for (i=1; i<=r; i++) { A = (A^B)+S[2*i]; B = (B^A)+S[2*i+1]; } ct[0] = A; ct[1] = B; }

Development (cont.) 2. I tested the effects of positions in the plaintext and the resulting ciphertext: void RC5_SETUP(WORD *K[4]) { /* secret input key K[0...b-1] */ WORD i, j, k, u=w/8, A, B, L[c]; /* NB: L[] == K[] in this instance */ for (S[0]=P,i=1; i<t; i++) { S[i] = S[i-1]+Q; } L[0]=K[0]; L[1]=K[1]; L[2]=K[2]; L[3]=K[3]; for (A=B=i=j=k=0; k<3*t; k++,i=(i+1)%t,j=(j+1)%c) { /* 3*t times */ A = S[i] = S[i]+(A+B); B = L[j] = L[j]+(A+B); } }

void main() { WORD pt[2] = {0,0}; WORD ct[2] = {0,0}; WORD key[c] = {0,0,0,0}; int iw,pw; /* check WORD size */ if (sizeof(WORD)!=4) { printf("RC5 error: WORD has %d bytes.\n",sizeof(WORD)); return(0); } key[0]=key[1]=key[2]=key[3]=0; RC5_SETUP(&key); RC5_ENCRYPT(pt,ct); printf("%.8lX%.8lX%.8lX%.8lX,",key[0],key[1],key[2],key[3]); printf("%.8lX%.8lX\n",ct[0],ct[1]); for (pw=3; pw>-1; pw--) { for (iw=0; iw<32; iw++) { key[0]=key[1]=key[2]=key[3]=0; key[pw]=(1<<iw); RC5_SETUP(&key); RC5_ENCRYPT(pt,ct); printf("%.8lX%.8lX%.8lX%.8lX,",key[0],key[1],key[2],key[3]); printf("%.8lX%.8lX\n",ct[0],ct[1]); } } }

Output ,FB FD ,160EBEBC61C ,6C8246C81A1EB ,A5B EA6F ,9AC017840EEF96F ,B298FBD49DB ,D66955F4398EDB , FD ,AB628634C868FD ,DB FD ,BB FD ,7B FD57

Development (cont.) 3. I came to the conclusion that lower modifications affected the lower bit results in the RC5 algorithm. 4. Coding the break:

Output Key: CCB C388009D0AFA10CF84A99 -> ciphertext: 8CA CDE76 Key: 4CB C388009D0AFA10CF84A99 -> ciphertext: 8CA CDE76 Key: BF2A D90AD AF -> ciphertext: 8CA CDE76 Key: 973F78BF20F D230F2C1BAF -> ciphertext: 8CA CDE76 Key: BFAA D90AD AF -> ciphertext: 8CA CDE76 … Key: B3BF78BF D230F2C1BAF -> ciphertext: 8CA CDE76 Key: EC8D89E03BAB57168BD EE0B -> ciphertext: 8CA CDE76 Key: E942B3E0326A4D C1F5C0B -> ciphertext: 8CA CDE76

3 rd Quarter I hope to find a practical implementation of strengthening RC5 (even in lesser rounds) Upper rounds are already secure; as of now, differential cryptanalysis has not managed to find collisions in better time than brute force.