Crypto Laboratory Winter 2007-2008

Download Report

Transcript Crypto Laboratory Winter 2007-2008

Crypto Laboratory
Winter 2007-2008
Alexander Grechin and Zohar Rogel
Under supervision of Zvika Berkovich
Development technology

C# language (VS 2005) and Microsoft
.NET framework 2.0



Reflection technology
Built-in graphics features
Simple GUI generation
Purchased knowledge




We’ve learned about some known ciphers
and their history
Experienced in application development
from the beginning to the end
Learned additional skills in C#
programming language
We’ve learned more about built-in abilities
of C# such as drag-drop feature and
visual manipulation of simple graphics
Introduction

The purpose of this project is to create the
demonstration program which allows:



Encrypt and decrypt English texts
Break encrypted English texts
Build and execute strategy – a sequence of
operations

Operation may be encryption, decryption or
cracking of some message with specific cipher and
parameters
Introduction

The program contains a set of ciphers


4 ciphers
User can add his own ciphers


User builds class that implements a defined
interface
Received dll file copied to work directory
Introduction

There are two logical parts in the project:


Build framework program that will supply the
user a convenient way to work with ciphers
Develop several ciphers and attach them to
the framework program
Framework application

Allows the user to work with ciphers

There are two ways to use the application:



Working using graphic interface – GUI
application
Working in command line – Console
application
In both cases the single core is used
GUI Application

Allows the user to:





Input and output texts
Get log messages
Execute single operation
Build and execute strategy
Examples
Console Application

Allows the user building and execution of
strategies only
Combined working scenario

User builds strategy in GUI application
GUI application translates the strategy to
the format of Console application
GUI application calls for command line
User continues working in command line

Example



Core module

Serves both applications


GUI application
Console application
Module diagram
Cipher attaching




Each cipher implemented as independent
module and implements ICipher interface
Core module looking for these modules in
current directory
Using Reflection mechanism the Core
instantiates the ciphers
Ciphers pointed through ICipher interface
Ciphers

Some simple ciphers were chosen:




Shift cipher (Julius Caesar cipher)
Transposition cipher (Rail fence cipher)
Simple Substitution cipher
Poly-alphabetic cipher (Vigenère cipher)
Julius Caesar cipher


Each letter in the plaintext is replaced by a
letter at some fixed number of positions
down the alphabet
For example, with a shift of 3:


A -> D
B -> E
Rail fence cipher

The plaintext is written downwards on successive
"rails" of an imaginary fence, then moving up
when we get to the bottom. The message is then
read off in rows.
Rail fence cipher - example
Plaintext: transposition
 Number of “rails” = 3
T
S
I
N
R N P S T O
A
O
I
 Cipher text: TSIN RNPSTO AOI

Substitution cipher




Each letter in the plaintext is replaced by a
letter in the substituted alphabet
Creating substituted alphabet: writing out
a keyword, removing repeated letters
Writing all the remaining letters in the
alphabet
The plaintext is encrypted using the
substituted alphabet
Substitution cipher - example


Keyword: “zebras”
Plaintext alphabet / Ciphertext alphabet :
 abcdefghijklmnopqrstuvwxyz


Message:


ZEBRASCDFGHIJKLMNOPQTUVWXY
flee at once. we are discovered!
Encrypted message:

SIAA ZQ LKBA. VA ZOA RFPBLUAOAR!
Vigenère cipher




Consists of several Caesar ciphers in
sequence with different shift values
Creating substituted alphabet: using a
Vigenère table – alphabet written out in
26 rows, each alphabet is shifted to the
left by one letter
Writing out a keyword in a cyclic way,
opposite to plaintext
Each letter is substituted according to the
keyword and the table
Vigenère cipher - example

Using Vigenère table (see below) and a
keyword:
 Plaintext:
attackatdawn


Keyword: LEMONLEMONLE
Ciphertext: LXFOPVEFRNHR
Summary

This project allowed us to purchase
knowledge about:




Some ciphers encryption and decryption
algorithms
Some ciphers auto-crack algorithms
Working with C# and .NET environment using
VS 2005
Stages of application development