The Hardware Side of Cryptography

12 May 2008

An Implementation of ThreeWay (3-Way) cipher using PIC16F84

Filed under: encryption — Tags: , , , , — edipermadi @ 9:45 am

ThreeWay (3-Way) cipher is a block cipher that has been developed by Joan Daemen. This cipher has 96-bits length of block and key. This cipher does not employ feistel network at all. The design of this cipher was intended for efficient hardware and software implementation. This cipher is not patented, feel free to use this cipher🙂 .

If you look further, this cipher consists of 11 rounds of processes. Most of the process is about XORs, circular shifts and several fundamental boolean operation such NOTs and ORs. In addition, this cipher does not employ substitution table, hence it can easily implemented in various microcontroller without worrying about memory consuming issues.

ThreeWay (3-Way) cipher also run well on PICmicro’s microcontroller from microchip. This post will demonstrate you how to implement ThreeWay (3-Way) cipher on PIC16F84 microcontroller. If you are pretty curious, you may extend the algorithm to derive the boolean function for hardware implementation using combinational logic flatform.

The benchmarking result shown that each iteration of encrypting process takes 4112 cycles and 299 words of program memory, not too bad😀 . Well, the screenshot is shown below.

The screenshot of ThreeWay (3-Way) cipher benchmarking result

RELATED STUFF

Download:
Source Code v1.0
PIC16F84 Datasheet
Mid-Range Reference Manual
MPLAB v8.0

Reference
ThreeWay (3-Way) cipher
Joan Daemen

Official Website:
Microchip

Simulator:
ThreeWay (3-Way) cipher Simulator

2 Comments »

  1. Hi sir
    I’m student in the university and i have been search for this subject (3-way cipher),and i’m so intersting of your post so plesae can you help me by sending me some detial of the three way cipher .
    best regards

    Comment by natali — 3 January 2011 @ 3:42 pm

  2. @natali

    Hello. thank you for visiting my blog. Sorry to say, i have no further detail documentation. you may refer to wikipedia for the specification

    Comment by edipermadi — 3 January 2011 @ 6:14 pm


RSS feed for comments on this post. TrackBack URI

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Create a free website or blog at WordPress.com.

%d bloggers like this: