Scalable Encryption Algorithm PDF
Scalable Encryption Algorithm PDF
In practice, SEA has been proven to be an efficient solution for embedded software
applications using microcontrollers, but its hardware performances have not yet been
investigated. Consequently, and as a first step towards hardware performance analysis,
this letter explores the features of a low-cost field-programmable gate array (FPGA)
encryption/ decryption core for SEA. In addition to the performance evaluation, we show
that the algorithm’s scalability can be turned into a fully generic VHDL design, so that
any text, key, and bus size can be straightforwardly reimplemented without any
modification of the hardware description language, with standard synthesis and
implementation tools.
1
CONTENTS
1.1 Introduction 9
1.2 VLSI Design Style 10
1.3 VLSI Design Flow 11
1.4 VLSI Features 11
CHAPTER 2: Introduction to VHDL 12
2.1 Introduction 12
2.2 Capabilities 13
2.3 Abstraction levels of VHDL 13
2.4 Basic Terminology 14
2.5 Modeling Techniques for VHDL 17
2.6 Process Statements 18
2.7 Conditional Statements 19
2.8 Active HDL Overview 21
2.9 Macro language 22
2.10 Compilation 23
2.11 Simulation 23
2.12 X Linix 24
The first digital circuit was designed by using electronic components like vacuum
tubes and transistors. Later Integrated Circuits (ICs) were invented, where a designer can
be able to place digital circuits on a chip consists of less than 10 gates for an IC called
SSI (Small Scale Integration) scale. With the advent of new fabrication techniques
designer can place more than 100 gates on an IC called MSI (Medium Scale Integration).
Using design at this level, one can create digital sub blocks (adders, multiplexes,
counters, registers, and etc.) on an IC. This level is LSI (Large Scale Integration), using
this scale of integration people succeeded to make digital subsystems (Microprocessor,
I/O peripheral devices and etc.) on a chip.
At this point design process started getting very complicated. i.e., manually
conversion from schematic level to gate level or gate level to layout level was becoming
somewhat lengthy process and verifying the functionality of digital circuits at various
levels became critical. This created new challenges to digital designers as well as circuit
designers. Designers felt need to automate these processes. In this process, Rapid
advances in Software Technology and development of new higher level programming
languages taken place. People could able to develop CAD/CAE (Computer Aided
Design/Computer Aided Engineering) tools, for design electronics circuits with
assistance of software programs. Functional verification and Logic verification of design
can be done using CAD simulation tools with greater efficiency. It became very easy to a
designer to verify functionality of design at various levels.
3
1.2 TYPICAL IC DESIGN FLOW:
Behavioral Simulation
Functional
Logic
Fabrication
Behavioral
Logic
Layout
LayBehavioral
Automatic
Out sSimulation
Specificatio
RTL
Gate
Library simulation
Constraint Level Net
Description
Management
Synthesis
P&R
Synthesis nl
D
ies
s
tc
r
i
p
t
i
o
n
4
1.3 MICRON TECHNOLOGY
The micron technology can be classified into 4 categories, Evolving from micron
technology and extending up to VDSM.
1.4 FEATURES:
5
6
VDSM
Micron
DSM
SM
Micron Technology
7
2.1 INTRODUCTION TO VHDL
➢ Sequential language
➢ Concurrent language
➢ Net-list language
➢ Timing specifications
This language not only defines the syntax but also defines very clear simulation
semantics for each language construct. Therefore, models written in this language can be
verified using a VHDL simulator. This subset is usually sufficient to model most
applications .The complete language, however, has sufficient power to capture the
descriptions of the most complex chips to a complete electronic system.
HISTORY:
The requirements for the language were first generated in 1988 under the VHSIC
chips for the department of Defence (DOD). Reprocurement and reuse was also a
big issue. Thus, a need for a standardized hardware description language for the design,
8
documentation, and verification of the digital systems was generated. The IEEE in the
December 1987 standardized VHDL language; this version of the language is known as
the IEEE STD 1076-1987. The official language description appears in the IEEE
standard VHDL language Reference manual, available from IEEE. The language has
also been recognized as an American National Standards Institute (ANSI) standard.
According to IEEE rules, an IEEE standard has to be reballoted every 5 years so that
it may remain a standard so that it may remain a standard. Consequently, the language
was upgraded with new features, the syntax of many constructs was made more uniform,
and many ambiguities present in the 1987 version of the language were resolved. This
new version of the language is known as the IEEE STD 1076-1993.
2.2 CAPABILITIES:
The following are the major capabilities that the language provides along with the
features that the language provides along with the features that differentiate it from other
hardware languages.
The language can be used as exchange medium between chip vendors and CAD
tool users. Different chip vendors can provide VHDL descriptions of their
components to system designers.
The language supports three basic different styles: Structural, Dataflow, and
behavioral.
Arbitrarily large designs can be modeled using the language, and there are no
limitations imposed by the language on the size of the design.
9
2.3 HARDWARE ABSTRACTION:
VHDL is used to describe a model for a digital hardware device. This model
specifies the external view of the device and one or more internal views. The internal
view of the device specifies functionality or structure, while the external view specifies
the interface of the device through which it communicates with the other modules in
the environment.
1. Entity declaration
2. Architecture body
3. Configuration declaration
4. Package declaration
5. Package body
10
Once an entity has been modeled, it needs to be validated by a VHDL system. A
typical VHDL system consists of an analyzer and a simulator. The analyzer reads in one
or more design units contained in a single file and compiles them into a design library
after validating the syntax and performing some static checks.
The language is case insensitive; that is lowercase and uppercase characters are
treated alike the Language is also free format comments are specified in the language by
preceding the text with two Consecutive dashes (- -).
Entity Declaration:
The entity declaration specifies the name of entity being modeled and lists the set
of inter face ports. Ports are signals through which entity communicates with other
models in its external environment.
EXAMPLE:
The entity called half adder has two input ports, A and B and two out put ports sum and
carry Bit is predefined type of the language.
Architecture Body:
An architecture body using any of the following modeling styles specifies the
internal details of an entity.
1. As a set of interconnected components (to represent structure)
2. As a set of concurrent assignment statements (to represent data flow)
3. As a set of sequential assignment statements (to represent behavior)
4. As any combination of the above three.
Architecture ha of ha is
Component Xor2
Port (X, Y: in BIT; Z:out BIT);
End component;
Component And2
Port (L, M: in BIT; N:outBIT);
End component;
Begin
X1: Xor2portmap (A, B, SUM)
11
A1: AND2portmap (A, B, CARRY);
End ha;
The name of the architecture body is ha .the entity declaration for half adder
specifies the interface ports for this architecture body. The architecture body is composed
of two parts: the declaration part and the statement part. Two component declarations are
present in the declarative part of the architecture body.
The declared components are instantiated in the statement part of the architecture
body using component instantiation. The signals in the port map of a component
instantiation and the port signals in the component declaration are associated by the
position.
In this modeling style, the flow of data through the entity is expressed primarily
using concurrent signal assignment statements. The data flow model for the half adder is
described using two concurrent signal assignment statements .In a signal assignment
statement, the symbol <=implies an assignment of a value to a signal.
It is possible to mix the three modeling styles in a single architecture body. That
is, within an architecture body, we could use component instantiation statements,
concurrent signal assignment statements and process statements.
MODEL ANALYSIS:
There is a design library with the logic name STD predefined by the VHDL
language environment. This library contains two packages: STANDARD and TEXTIO.
The STANDARD package contains declarations for all the predefined types of the
language .The TexTIO package contains procedures and functions that are necessary for
supporting formatted text read and write operations. There also exists an IEEE standard
package called STD_LOGIC_1164,and contains its associated sub types; overloaded
12
operator functions, and other useful utilities. This standard is called the IEEE STD 1164 –
1993.
SIMULATION:
For a hierarchical entity to be simulated, all of its lowest –level components must be
described at the behavioral level. A simulation can be performed on either one of the
following:
2. A configuration
2. Initialization phase: Driving and effective values for all explicitly declared signals
are computed, implicit signals are assigned values, processes are executed once
until they suspend, and simulation time is set to 0ns.
Simulation commences by advancing time to that of the next event. Values that
are assigned to signals at this time are assigned. If the value of a signal changes, and if
that signal is present in the sensitivity list of a process, the process is executed until it
suspends. Simulation stops when an assertion occurs, depending on the implementation
of the VHDL system or when the maximum time as defined by the language is reached.
Entity Declaration:
An entity declaration describes the external interface of the entity. It specifies the
name of the entity, the names of the interface ports, their mode and the type of ports .The
syntax for entity declaration is:
The entity –name is the name of the entity, and the interface ports are the signals
through which entity passes the information to and from its external environment. Each
interface port can have one of the following modes:
1. in: The value of an input port can only read with in the entity model .
2. out: The value of an out put port can only be updated within the entity model.
13
3. inout: The value of a bi directional port can be read and updated within the entity
model.
4. buffer: The value of a buffer port can be read and updated within the entity
model .It cannot have more than one source.
Declarations that are placed in the entity are common to all the design units that
are associated with that entity declaration.
ARCHITECTURE BODY:
The concurrent statements describe the internal composition of the entity. All
concurrent statements are executed in parallel. The internal composition of an entity can
be expressed in terms of structure, dataflow and sequential behavior.
Here we describe an entity by using the behavioral model. A process statement,
which is a concurrent statement, is the primary mechanism used to describe the
functionality of an entity in this modeling style.
A set of signals to which the process is sensitive is defined by the sensitivity list.
In other words, each time an event occurs on any of the signals in the sensitivity list, the
sequential statements with in the process are executed in a sequential order, that is in the
order in which they appear. The process then suspends after executing the last sequential
statement and waits for another event to occur on a signal in the sensitivity list.
Variable-object: = expression;
The expression is evaluated when the statement is executed, and the computed
value is assigned to the variable object instantaneously, that is, at the concurrent
simulation time.
A variable can be declared outside of a process or subprogram. Such a variable
can be read and updated by more than one process. These variables are called shared
variables.
Signals are assigned values using a signal assignment statement. The simplest
form of a signal assignment statement is:
IF STATEMENT:
The if statement is executed by checking each condition sequentially until the first
true condition is found; the set of sequential statements associated with this condition is
executed. An if statement is also a sequential statement.
CASE STATEMENT:
LOOP STATEMENTS:
A loop statement is used to iterate through a set of sequential statements the syntax
for loop statement is:
16
2.8 Active HDL Overview:
Active-HDL is an integrated environment designed for development of VHDL, Verilog,
EDIF and mixed VHDL-Verilog-EDIF designs. It comprises three different design entry
tools, VHDL'93 compiler, Verilog compiler, single simulation kernel, several debugging
tools, graphical and textual simulation output viewers, and auxiliary utilities designed for
easy management of resource files, designs, and libraries.
Standards Supported
VHDL:
The VHDL simulator implemented in Active-HDL supports the IEEE Std. 1076-1993
standard.
Verilog:
The Verilog simulator implemented in Active-HDL supports the IEEE Std. 1364-1995
standard. Both PLI (Programming Language Interface) and VCD (Value Change Dump)
are also supported in Active-HDL.
EDIF:
Active-HDL supports Electronic Design Interchange Format version 2 0 0.
VITAL:
The simulator provides built-in acceleration for VITAL packages version 3.0. The
VITAL-compliant models can be annotated with timing data from SDF files. SDF files
must comply with OVI Standard Delay Format Specification Version 2.1.
WAVES:
Active-HDL supports automatic generation of test benches compliant with the WAVES
standard. The basis for this implementation is a draft version of the standard dated to May
1997 (IEEE P1029.1/D1.0 May 1997). The WAVES standard (Waveform and Vector
Exchange to Support Design and Test Verification) defines a formal notation that
17
supports the verification and testing of hardware designs, the communication of hardware
design and test verification data, the maintenance, modification and procurement of
hardware system.
All operations in Active-HDL can be performed using Active-HDL macro language. The
language has been designed to enable the user to work with Active-HDL without using
the graphical user interface (GUI).
1. HDL Editor:
HDL Editor is a text editor designed for HDL source files. It displays specific
syntax categories in different colors (keyword coloring). The editor is tightly
integrated with the simulator to enable debugging source code. The keyword
coloring is also available when HDL Editor is used for editing macro files, Perl
scripts, and Tcl scripts.
2. Block Diagram Editor:
Block Diagram Editor is a graphical tool designed to create block diagrams. The
editor automatically translates graphically designed diagrams into VHDL or
Verilog code.
3. State Diagram Editor:
State Diagram Editor is a graphical tool designed to edit state machine diagrams.
The editor automatically translates graphically designed diagrams into VHDL or
Verilog code.
4. Waveform Editor:
Waveform Editor displays the results of a simulation run as signal waveforms. It
allows you to graphically edit waveforms so as to create desired test vectors.
5. Design Browser:
The Design Browser window displays the contents of the current design, that is:
➢ Resource files attached to the design.
➢ The contents of the default-working library of the design.
➢ The structure of the design unit selected for simulation.
➢ VHDL, Verilog, or EDIF objects declared within a selected region of the
current design.
6. Console window:
The Console window is an interactive input-output text device providing entry for
Active-HDL macro language commands, macros, and scripts. All Active-HDL tools
output their messages to Console.
18
2.10 Compilation:
2.11 Simulation:
The purpose of simulation is to verify that the circuit works as desired.
The Active-HDL simulator provides two simulation engines.
➢ Event-Driven Simulation
➢ Cycle-Based Simulation
The simulator supports hybrid simulation – some portions of a design can be simulated in
the event-driven kernel while the others in the cycle-based kernel. Cycle-based
simulation is significantly faster than event-driven.
2.12 XILINX:
Integrated Software Environment (ISE) is the Xilinx design software suite. This overview
explains the general progression of a design through ISE from start to finish.
19
ISE enables you to start your design with any of a number of different source types,
including:
• HDL (VHDL, Verilog HDL, ABEL)
• Schematic design files
• EDIF
• NGC/NGO
• State Machines
• IP Cores
From your source files, ISE enables you to quickly verify the functionality of these
sources using the integrated simulation capabilities, including ModelSim Xilinx Edition
and the HDL Bencher test bench generator. HDL sources may be synthesized using the
Xilinx Synthesis Technology (XST) as well as partner synthesis engines used standalone
or integrated into ISE. The Xilinx implementation tools continue the process into a
placed and routed FPGA or fitted CPLD, and finally produce a bit stream for your device
configuration.
Design Entry:
• ISE Text Editor - The ISE Text Editor is provided in ISE for entering design code
and viewing reports.
• Schematic Editor - The Engineering Capture System (ECS) is a graphical user
interface (GUI) that allows you to create, view, and edit schematics and symbols
for the Design Entry step of the Xilinx® design flow.
• CORE Generator - The CORE Generator System is a design tool that delivers
parameterized cores optimized for Xilinx FPGAs ranging in complexity from
simple arithmetic operators such as adders, to system-level building blocks such
as filters, transforms, FIFOs, and memories.
• Constraints Editor - The Constraints Editor allows you to create and modify the
most commonly used timing constraints.
• PACE - The Pin out and Area Constraints Editor (PACE) allows you to view and
edit I/O, Global logic, and Area Group constraints.
• State CAD State Machine Editor - State CAD allows you to specify states,
transitions, and actions in a graphical editor. The state machine will be created in
HDL.
Implementation:
• Translate - The Translate process runs NGDBuild to merge all of the input net
lists as well as design constraint information into a Xilinx database file.
• Map - The Map program maps a logical design to a Xilinx FPGA.
• Place and Route (PAR) - The PAR program accepts the mapped design, places
and routes the FPGA, and produces output for the bit stream generator.
20
• Floor planner - The Floor planner allows you to view a graphical representation of
the FPGA, and to view and modify the placed design.
• FPGA Editor - The FPGA Editor allows you view and modify the physical
implementation, including routing.
• Timing Analyzer - The Timing Analyzer provides a way to perform static timing
analysis on FPGA and CPLD designs. With Timing Analyzer, analysis can be
performed immediately after mapping, placing or routing an FPGA design, and
after fitting and routing a CPLD design.
• Fit (CPLD only) - The CPLDFit process maps a net list(s) into specified devices
and creates the JEDEC programming file.
• Chip Viewer (CPLD only) - The Chip Viewer tool provides a graphical view of
the inputs and outputs, macro cell details, equations, and pin assignments.
• BitGen - The BitGen program receives the placed and routed design and produces
a bit stream for Xilinx device configuration.
• iMPACT - The iMPACT tool generates various programming file formats, and
subsequently allows you to configure your device.
• XPower - XPower enables you to interactively and automatically analyze power
consumption for Xilinx FPGA and CPLD devices.
• Integration with ChipScope Pro.
CH 3: Introduction to SEA
Those goals are particularly relevant in contexts where the same constrained
device has to perform encryption and decryption operations (e.g. authentication). Finally,
the simplicity of SEAn,b makes its implementation straightforward. Embedded
applications such as building infrastructures present a significant opportunity and
challenge for such new cryptosystems.
3.1 Specifications:
SEAn,b operates on various text, key and word sizes. It is based on a Feistel
structure with a variable number of rounds, and is defined with respect to the
following parameters:
– n: plaintext size, key size.
– b: processor (or word) size.
– nb = n
2b : number of words per Feistel branch.
--nr: number of block cipher rounds.
22
As only constraint, it is required that n is a multiple of 6b. For example, using
an 8-bit processor, we can derive 48, 96, 144, . . . -bit block ciphers, respectively
denoted as SEA48,8, SEA96,8, SEA144,8, ... Let x be a n2
-bit vector. In the following, we will consider two representations:
– Bit representation: xb = x(n2− 1) x(n2− 2) . . . , x(2) x(1) x(0).
--Word representation: xW = xnb−1 xnb−2 . . . x2 x1 x0.
Basic Operations
1. Bitwise XOR:
2. Substitution Box S:
S : Znb
2b → Znb
2b : x → x = S(x) ⇔
x3i = (x3i+2 ∧ x3i+1) ⊕ x3i,
x3i+1 = (x3i+2 ∧ x3i) ⊕ x3i+1,
x3i+2 = (x3i ∨ x3i+1) ⊕ x3i+2, 0≤ i ≤ nb3 − 1,
where ∧ and ∨ respectively represent the bitwise AND and OR.
Word Rotation R:
23
Bit Rotation r:
Addition mod2b _:
Based on the previous definitions, the encrypt round FE, decrypt round FD
and key round FK are pictured in Figure 1 and defined as the functions F :
Z2 2n/2 ラ Z2n/2 → Z2 2n/2 such that:
24
kKR
L
Ri
Li
C
rS
Rii+-1i+i11 i+i+11
KRi
KLi
KL
The cipher iterates an odd number nr of rounds. The following pseudo-C code
encrypts a plaintext P under a key K and produces a ciphertext C. P,C and
K have a parametric bit size n. The operations within the cipher are performed
considering parametric b-bit words.
C=SEAn,b(P,K)
{
% initialization:
L0&R0 = P;
KL0&KR0 = K;
% key scheduling:
for i in 1 to _nr2_
[KLi,KRi] = FK(KLi−1,KRi−1, C(i));
switch KL_ nr
for i in nr 2_, KR_ nr2_;2 to nr − 1
25
[KLi,KRi] = FK(KLi−1,KRi−1, C(r − i));
% encryption:
for i in 1 to nr2
[Li,Ri] = FE(Li−1,Ri−1,KRi−1);
for i in nr2 + 1 to nr
[Li,Ri] = FE(Li−1,Ri−1,KLi−1);
% final:
C = Rnr&Lnr ;
switch KLnr−1, KRnr−1;
},
where
where & is the concatenation operator, KR
_ nr2 _
is taken before the switch and
C(i) is a nb-word vector of which all the words have value 0 excepted the LSW
that equals i. Decryption is exactly the same, using the decrypt round FD.
Substitution Box S:
The substitution box was searched exhaustively in order to meet the following security
and efficiency criteria:
– λ-parameter1: 1/2.
– δ-parameter2: 1/4.
– Maximum nonlinear order, namely 2.
– Recursive definition.
– Minimum number of instructions.
Remark that, if 3-operand instructions are available, the recursive definition allows to
perform the substitution box in 2 operations per word of data. As a comparison, the 3 ラ 3
bitwise substitution box used in 3-WAY [15] requires 3. The counterpart of this
efficiency is the presence of two fixed points in the table.
The cyclic rotations were defined in order to provide predictable low-cost diffusion
within the cipher, when combined with the bitslice substitution box. It is illustrated in
Figure 2 for a single substitution box scheme with parameters n = 48, b = 8, nb = 3.
Looking at the figure, it can be seen that SEAn,b divides its data in 2nb
3 blocks of 3 words. The substitution box is applied in parallel to these blocks. Therefore,
the diffusion process (starting with one single active bit in the left branch) is divided into
two steps3:
The first phase is obtained by the combination of the word rotation R (which is the only
transform to provide inter-word diffusion) with the substitution box. It requires at most
26
nb rounds to be completed (in our example, nb = 3 which yields 3 rounds). Once every
word has at least one active bit, the combination of r and S yields six more active bits per
block in each round. Therefore, finishing the diffusion of all the blocks requires at most
_b/2_ rounds. Combining these observations, the diffusion is complete after nb + _b/2_
rounds.
Addition mod 2b _:
Using a mod 2b key addition in place of a bitwise XOR was motivated by different
reasons: (1) improvement of the diffusion process, (2) improvement of the non-linearity,
(3) same cost/speed as the bitwise XOR in
most processors, (4) necessity to avoid structural attacks.
The overall structure of the cipher follows the Feistel strategy. However, a few points are
specific to SEAn,b, namely the key schedule and the position of R, R−1 in the
encrypt/decrypt rounds.The key schedule is designed such that the master key is
encrypted during half the rounds and decrypted during the other half. It allows to obtain a
particular structure of the sequence of round keys such that the key expansion is exactly
the same in encryption and decryption. Namely, we have:
K0,K1,K2, . . . , K_ r
2 _,K_ r
2 _−1, . . . , K2,K1,K0
As a consequence of this structure, the encryption/decryption rounds cannot
keep the traditional Feistel structure: it would result in having identical encryption
and decryption functions. This is the reason of moving the word rotation
to the left branch of the Feistel round.
From the properties of the substitution box, we can compute bounds for the best linear
and differential characteristics through the cipher. We first use the following lemma
[29]:Lemma 1. Let f be the bijective nonlinear function of a 3-round Feistel cipher.
Assuming that the linear parameter of f is smaller than λ and its differential parameter is
smaller than δ, then the linear, differential parameters of the 3-round cipher Δ,Λ are
respectively smaller than λ2, δ2. Since our nonlinear function S has parameter δ = 2−2
and parameter λ = 2−1,
it implies that 3 rounds of SEAn,b have their linear and differential parameters
respectively bounded by Δ < 2−4 and Λ < 2−2. However, for a n-bit block cipher, it is
respectively required that Δ _ 2−n and Λ _ 2−n2 to resist against differential [4] and
linear cryptanalysis [28]. In order to approach these bounds, we require that:
δ2nr/3 = _2−2_2nr/3
< 2−n and λ2nr/3 = _2−1_2nr/3< 2−n2. (1)
In both cases, the required number of rounds is: nr ≥ 3n/4. We note that we used a hybrid
approach, between the provable security against linear and differential attacks that
consists in bounding the parameter of the best differential/hull, like in lemma 1, and the
usual heuristics to estimate the best linear/differential characteristic through a cipher (as
27
in the previous estimation for nr). In fact, the strategy of Equation (1) is similar to the one
of e.g. the AES Rijndael [17], but we only assume one active s-box per round.
However these extensions usually imply only a small improvement compared to the basic
attacks. As a matter of fact, non-linear approximations of outer rounds allow to improve
the bias of one or two rounds only. Regarding bi-linear cryptanalysis, we quote the author
of [14]: For ciphers similar to DES, based on small substitution boxes, we claim that bi-
linear cryptanalysis is very closely related to LC, and we do not expect to find a bi-linear
attack much faster than by LC.
As an example, the boomerang (or rectangle) attack allows us to use two short
differentials instead of a long one, but using a long differential with probability pq is in
general highly preferable to applying a boomerang attack with two short differentials of
probability p and q. Therefore although these attacks can perform slightly better in
specific cases, the expected improvement is never outstanding.The conclusion is that
these extensions actually deserve to be considered in the estimation of the number of
rounds necessary to achieve security, but that a reasonable multiplicative factor should be
enough to take them into account.
Consider a modified version of our cipher where key addition is performed using rather
than modular addition, and where all round constants Ci are such that Ci ≪ a = Ci, e.g.
all Ci’s equal 0. As a consequence of the previous observations, the modified round F_E
and the key round FK satisfy:
F_E (L≪a,R≪a,K ≪a) = F_E (L,R,K)≪a
FK(KL≪a,KR≪a, 0) = FK(KL,KR, 0)≪a
28
These properties are iterative, in the sense that they also hold for the composition of
several block cipher rounds. It is immediate to deduce from them a distinguisher on the
modified cipher, which requires 2 chosen encryption queries under 2 related keys K and
K ≪a. In the actual SEAn,b, the key addition is performed word-wise mod 2b. As the
property (X ≪ a) _ (K ≪ a) = (X _ K) ≪ a is prevented by certain carry propagations, it
only holds with a probability p, which depends on a and the word size b. For a = 1, p
rapidly converges to 3/8 as b grows. It is smaller for 1 < a < b−1. Of course, this
probability is averaged for all possible (X,K) and certain keys (e.g. “all zeroes”) yield no
carry propagation at all. However, the design properties of the key schedule prevent
SEAn,b from having such weak keys.
Moreover the round constants Ci are generally not such that Ci ≪a = Ci (because they
are generated from a counter). Combined with the diffusion in the key schedule, it
implies that the similarity between the round keys derived from K and those derived from
K ≪a rapidly vanishes. These properties avoid this structural distinguisher to be
propagated through more than a few rounds of SEAn,b.
Square Attacks:
We explored square attacks [16] on SEA48,8. More precisely, we considered all possible
sets of inputs to one branch of the Feistel structure, where the input to some of the
substitution boxes is active (i.e. takes all possible input values the same number of times),
and the input to the other substitution boxes is constant. The other branch is also constant.
Therefore the number of plaintexts considered goes from 23 (when the input to only one
substitution box is active) to 221 (when the input to 7 substitution boxes is active). Our
experiments showed that square attacks do not allow to pass through more rounds than
the diffusion pattern illustrated in Figure. It is expected that it remains the same when
different parameters n and b are considered, which implies that nb + _b/2_ rounds are
enough to prevent square attacks. Note that although our observations also hold for ⊕-
SEAn,b, the use of addition mod 2b provides better resistance against square attacks.
As for square attacks, the diffusion analysis illustrated in Figure provides an estimation
of the number of rounds required to prevent truncated differential attacks [25].
Impossible differentials[7] are usually built by concatenating two incompatible truncated
differentials. As a consequence, we estimate the number of rounds necessary to prevent
the construction of an impossible differential distinguisher as 2 キ (nb + _b/2_).
Interpolation Attacks:
The interpolation attack [21] is possible when the whole cipher can be written as a
relatively simple algebraic expression. It requires the substitution box to have a compact
expression, and the diffusion layer to permit the composition of these expressions. In the
case of SEAn,b, there is a priori no such expression, and the bitwise diffusion would
make the combination of algebraic expressions difficult anyway.
29
Slide Attacks:
The sequence of round keys of SEAn,b is the same as the one of ICEBERG. Therefore
the analysis done in [30] is still valid. Namely, the non periodicity of the sequence should
make slide attacks [11, 12] irrelevant. The particular structure of this sequence also has
some similarities with the one of GOST, of which the vulnerability against slide attacks is
examined in [12]. None of the attacks presented in [12] seems to be applicable to our
cipher.
Related-Key Attacks:
The first related-key attack has been described in [5]. It is the related-key counterpart of
the slide attack. Such an attack is applicable when a round key Ki is computed from the
previous round key Ki−1 using a function f which is always the same: Ki = f(Ki−1).
However in the case of SEAn,b, a round constant that changes for each key round is used,
which prevents this attack. Another type of related-key attack is the differential related
key attack [23, 24]. The non-linearity of the SEAn,b key schedule should prevent it.
Moreover, note that the improvement of the differential related-key attack over classical
differential cryptanalysis usually results from the fact that choosing a given round key
difference allows to “counter” the effect of the diffusion layer on the differential
characteristic; a typical example is the attack on 3-WAY [24]. As the security of SEAn,b
against differential cryptanalysis results from its large number of rounds rather than from
its diffusion, this effect is notrelevant here.
Complementation Properties:
The DES has the following complementation property: if P K→C denotes the fact that
encryption of P under key K gives ciphertext C, then: P K −→ C ⇐⇒ P K −→ C. The
non-linear key scheduling and the presence of carry propagations in the actual SEAn,b
algorithm prevents this property. We are not aware of any other similar structural feature
in the design.
Algebraic Attacks:
Algebraic attacks intend to exploit the simple algebraic structure of a block cipher. For
example, certain block ciphers can be written as an overdefined system of quadratic
equations. Reference [13] argues that a method called XSL might provide a way to
effectively solve this type of equations and recover the key from a few plaintext-
ciphertext pairs. Clearly, SEAn,b has a simple algebraic structure, as it is based on a 3-bit
substitution box. Therefore, if such an attack practically applies to a cipher like Serpent
[1], it is likely applicable to one of the versions of our routines. As the complexity of
XSL is supposedly polynomial in the plaintext size and number of rounds, it is specially
true when those values increase. However, as the criteria for these techniques to be
successful are still being discussed [9], we did consider this latter point as a scope for
further research. We note that resistance against algebraic attacks would anyway exclude
the use of small substitution boxes and therefore the possibility to build very low cost
encryption routines.
30
Suggested Number of Rounds:
From the previous descriptions, the minimum required number of rounds to provide
security against known attacks would be 3n4 + 2 キ (nb + _b/2_). This roughly
corresponds to the number of rounds to resist linear/differential attacks plus twice the
number of rounds to obtain complete diffusion (to prevent both structural attacks and
outer rounds improvements of statistical attacks). A more conservative approach (applied
in most present block ciphers) would be to take a large security margin, e.g. by doubling
this number of rounds4. nr has to be odd: we add one if it is even. We also assume a
minimum word size b ≥ 8 bits.
SEAn,b is targeted for being implemented on low-cost processors, with little code size
and a small instruction set. However, SEAn,b’s simple structure makes it easy to
implement on any processor. In appendix, we propose a pseudo-assembly code of an
encryption/decryption design with “on the fly” key scheduling. The implementation
objectives were, in decreasing order of importance: (1) low RAM and registers usage, (2)
low code size and (3) speed. It is based on the following (very) reduced instruction set
(assuming 2-operand instructions only):
– Arithmetic and logic operators: ∨, ∧,⊕,_,≫,≪.
31
For illustration purposes, we implemented SEAn, b on Atmel AVR ATtiny[3] And ARM
[2] microprocessors. The Atmel ATtiny represents a typical target for such a low-cost
encryption routine. We chose the ARM platform in order to provide rough comparisons
between SEAn,b and the AES Rijndael. While direct comparisons are made difficult by
their high dependencies on the target devices, the following general comments can be
made:
– SEAn,b designs combine encryption and decryption more efficiently than most other
encryption algorithms. In particular, key agility in decryption is usually not possible (e.g.
for the AES Rijndael).
– The combined number of RAM words and registers of SEAn,b implementations (i.e.
5nb + 3) is generally lower than for other block ciphers.
– The code size of SEAn,b is generally lower than for other block ciphers implemented
on similar platforms.
The flexibility of SEAn,b also makes it less sensitive to the choice of a processor than
fixed-sized algorithms, although it is obvious that large buses improve efficiency. The
drawback of these limited resources is in the number of cycles required for the encryption
(i.e. SEAn,b trades space for time, which may be relevant due to present processors
speeds). Looking at the code size - cycles product, the efficiency of SEAn,b remains
similar to the one of Rijndael (encryption only) that is well known for its efficient smart
cards implementations.
32
CH:4 AN EXPOSITION OF THE SEA ALGORITHM
The _rst polynomial time algorithm for determining the number of rational points on an
elliptic curve de_ned over a _nite _eld is due to Schoof. He used calculations with torsion
points on the curve to arrive at the number of points. At _rst Schoof's algorithm was
considered impractical, but Elkies suggested the use of \good" primes (now known as
Elkies primes), where isogenies and modular curves can be involved to speed up the
calculation. Atkin also made a number of important contributions to the algorithm, which
then became known as the Schoof{Elkies{Atkin (SEA) algorithm.
It is known that
#E(Fp) = p + 1 � t;
where t is an integer which satis_es the Hasse bound
�2pp _ t _ 2pp:
33
The algorithm works by calculating t modulo several small auxiliary primes `. When the
product of the auxiliary primes exceeds 4pp, the Chinese Remainder Theorem is used to
recover the exact value of t, and hence that of #E(Fp). The algorithm works its way
though a _xed list of 40 candidates for auxiliary primes given below. For each candidate,
a calculation has to be carried out to generate a certain polynomial ` that is necessary for
further calculations with this `. These polynomials` do not depend on the curve E under
consideration and hence might be precomputed and stored if memory allows. Then for
any elliptic curve E we can quickly decide if our algorithm applies (the probability that
the algorithm applies for a speci_c E and ` is 1=2). For those curves where the algorithm
applies, we can determine t modulo `. When we _nished with all our candidates for the
auxiliary primes, we can look at the elliptic curve and check whether the product of
auxiliary primes that worked exceeds 4pp or not. In the former case, we succeeded in
determining t.
A typical application for this point counting would be to take a random prime p and a
random elliptic curve E over Fp, with the intention of _nding an E with #E(Fp) = xr,
where r is a prime and x is small. Given such a curve, a point P of order r can be located
easily and the pair (E; P) could be used for a number of cryptographic algorithms, such as
Di_e-Hellman key exchange, El Gamal encryption, etc. If we use 200-bit primes for p
and require x _ 32, then the probability that #E = xr is about 2.5%, so we expect to have
to run our algorithm on about 55 curves. Section 2 describes the algorithm in detail.
Section 3 presents the mathematical background of the algorithm. Section 4 presents
ideas by which the algorithm could be improved. Section 5 contains certain tables of data
that need to be hardwired into a program implementing this algorithm.
The Algorithm
4.1 Overview:
The set A of potential auxiliary primes is the union of the set As of small primes and the
set Al of larger primes. For each ` 2 A, we need to determine a polynomial `(F; J)
2 Z[F; J]. For ` 2 As, this is stored in the program. For ` 2 Al, must be calculated by
determining a number of coefficients of a certain q-series f(q) 2 Z[[q]] and carrying out
certain algebraic operations on it. The polynomials do not depend on the elliptic curve
under consideration and therefore may be pre-calculated and stored if there is enough
space for them (they require just under a half megabyte to store).
We start out with a given prime p and an elliptic curve
E : y2 = x3 + a4x + a6:
34
CH 5: SEA Architecture Block Diagram
35
M
Round
KeyReg[9
KeyRe
K
SBo
W
Encryption
Cipher
DataI
Mo
B
SBox
IW
XO
Rou
Decryption
Plain
Key0
Key9
Data
Dat
SM
R
E
E/
KeyI
Ke
C text
data
data
xod
Reg
5:0]
g0[95:
g1[95:
g8[95:
g9[95:
E
xxx
daL
R
nd
Computational
Register
O[95:
aR
lk
st
nC
DO
[95:0
slyL Block
xY
Block
a0]
tkd]vr
Reg
C
O
M
P
U
T
A
T
I
O
N
A
L
B
L
O
C
K
36
FIG: 5.1
38
Cryptography:
Cryptography is the art and science of secret writing. The term is derived from the Greek
language
• krytos - secret
• graphos - writing
5.2 Encryption:
39
FIG 5.2 ENCRYPTION BLOCK
40
5.3 DECRYPTION :
The process of decoding data that has been encrypted into a secret format.
Decryption requires a secret key or password.
It is a commonly held misconception that every encryption method can be broken.
In connection with his WWII work at Bell Labs, Claude Shannon proved that the one-
time pad cipher is unbreakable, provided the key material is truly random, never reused,
kept secret from all possible attackers, and of equal or greater length than the message.[22]
Most ciphers, apart from the one-time pad, can be broken with enough computational
effort by brute force attack, but the amount of effort needed may be exponentially
dependent on the key size, as compared to the effort needed to use the cipher.
In such cases, effective security could be achieved if it is proven that the effort
required (i.e., "work factor", in Shannon's terms) is beyond the ability of any adversary.
This means it must be shown that no efficient method (as opposed to the time-consuming
brute force method) can be found to break the cipher. Since no such showing can be
made currently, as of today, the one-time-pad remains the only theoretically unbreakable
cipher.
There are a wide variety of cryptanalytic attacks, and they can be classified in any
of several ways. A common distinction turns on what an attacker knows and what
capabilities are available. In a ciphertext-only attack, the cryptanalyst has access only to
the ciphertext (good modern cryptosystems are usually effectively immune to ciphertext-
only attacks). In a known-plaintext attack, the cryptanalyst has access to a ciphertext and
its corresponding plaintext (or to many such pairs). In a chosen-plaintext attack, the
cryptanalyst may choose a plaintext and learn its corresponding ciphertext (perhaps many
times); an example is gardening, used by the British during WWII.
Finally, in a chosen-ciphertext attack, the cryptanalyst may be able to choose
ciphertexts and learn their corresponding plaintexts.[10] Also important, often
overwhelmingly so, are mistakes (generally in the design or use of one of the protocols
involved; see Cryptanalysis of the Enigma for some historical examples of this).
Cryptanalysis of symmetric-key ciphers typically involves looking for attacks
against the block ciphers or stream ciphers that are more efficient than any attack that
could be against a perfect cipher. For example, a simple brute force attack against DES
requires one known plaintext and 255 decryptions, trying approximately half of the
possible keys, to reach a point at which chances are better than even the key sought will
have been found. But this may not be enough assurance; a linear cryptanalysis attack
against DES requires 243 known plaintexts and approximately 243 DES operations.[23] This
is a considerable improvement on brute force attacks.
Public-key algorithms are based on the computational difficulty of various
problems. The most famous of these is integer factorization (e.g., the RSA algorithm is
based on a problem related to integer factoring), but the discrete logarithm problem is
also important. Much public-key cryptanalysis concerns numerical algorithms for solving
these computational problems, or some of them, efficiently (ie, in a practical time).
41
For instance, the best known algorithms for solving the elliptic curve-based
version of discrete logarithm are much more time-consuming than the best known
algorithms for factoring, at least for problems of more or less equivalent size. Thus, other
things being equal, to achieve an equivalent strength of attack resistance, factoring-based
encryption techniques must use larger keys than elliptic curve techniques. For this reason,
public-key cryptosystems based on elliptic curves have become popular since their
invention in the mid-1990s.
While pure cryptanalysis uses weaknesses in the algorithms themselves, other
attacks on cryptosystems are based on actual use of the algorithms in real devices, and are
called side-channel attacks. If a cryptanalyst has access to, say, the amount of time the
device took to encrypt a number of plaintexts or report an error in a password or PIN
character, he may be able to use a timing attack to break a cipher that is otherwise
resistant to analysis.
An attacker might also study the pattern and length of messages to derive
valuable information; this is known as traffic analysis,[24] and can be quite useful to an
alert adversary. Poor administration of a cryptosystem, such as permitting too short keys,
will make any system vulnerable, regardless of other virtues. And, of course, social
engineering, and other attacks against the personnel who work with cryptosystems or the
messages they handle (e.g., bribery, extortion, blackmail, espionage, torture, ...) may be
the most productive attacks of all.
42
FIG: 5.4 DECRYPTION BLOCK
43
SIMULATION RESULTS
44
Encryption Results
45
Decryption Results
46
SYNTHESIS REPORTS
KEY INPUT:
RTL SCHEMATIC
GATE LEVEL
SYNTHESIS REPORT:
47
Release 6.1i - ngdbuild G.23
Copyright (c) 1995-2003 Xilinx, Inc. All rights reserved.
Design Summary
--------------
Number of errors: 0
Number of warnings: 0
Logic Utilization:
Logic Distribution:
Number of Slices containing only related logic: 0 out of 0 0%
Number of Slices containing unrelated logic: 0 out of 0 0%
*See NOTES below for an explanation of the effects of unrelated logic
Number of bonded IOBs: 194 out of 86 225% (OVERMAPPED)
IOB Flip Flops: 96
Number of GCLKs: 1 out of 4 25%
Number of GCLKIOBs: 1 out of 4 25%
MAPPING REPORT:
Rele'keyreg'
48
Design Information
------------------
Command Line : C:/Xilinx/bin/nt/map.exe -intstyle ise -p xc2s15-cs144-6 -cm
area -pr b -k 4 -c 100 -tx off -o keyreg_map.ncd keyreg.ngd keyreg.pcf
Target Device : x2s15
Target Package : cs144
Target Speed : -6
Mapper Version : spartan2 -- $Revision: 1.16 $ase 6.1i Map G.23
Xilinx Mapping Report File for Design
Mapped Date : Mon Mar 30 12:42:43 2009
Design Summary
--------------
Number of errors: 0
Number of warnings: 0
Logic Utilization:
Logic Distribution:
Number of Slices containing only related logic: 0 out of 0 0%
Number of Slices containing unrelated logic: 0 out of 0 0%
*See NOTES below for an explanation of the effects of unrelated logic
Number of bonded IOBs: 194 out of 86 225% (OVERMAPPED)
IOB Flip Flops: 96
Number of GCLKs: 1 out of 4 25%
Number of GCLKIOBs: 1 out of 4 25%
Design Summary
--------------
49
Number of errors: 0
Number of warnings: 0
Logic Utilization:
Logic Distribution:
Number of Slices containing only related logic: 0 out of 0 0%
Number of Slices containing unrelated logic: 0 out of 0 0%
*See NOTES below for an explanation of the effects of unrelated logic
Number of bonded IOBs: 194 out of 86 225% (OVERMAPPED)
IOB Flip Flops: 96
Number of GCLKs: 1 out of 4 25%
Number of GCLKIOBs: 1 out of 4 25%
KEY REGISTER:
TABLE OF CONTENTS
1) Synthesis Options Summary
2) HDL Compilation
3) HDL Analysis
4) HDL Synthesis
4.1) HDL Synthesis Report
5) Advanced HDL Synthesis
6) Low Level Synthesis
7) Final Report
7.1) Device utilization summary
7.2) TIMING REPORT
===============================================================
==========
* Synthesis Options Summary *
===============================================================
==========
---- Source Parameters
50
Input File Name : keyreg.prj
Input Format : mixed
Ignore Synthesis Constraint File : NO
Verilog Include Directory
===============================================================
==========
===============================================================
==========
* HDL Compilation *
===============================================================
==========
Compiling vhdl file c:/xilinx/bin/vasu/KeyReg.vhd in Library work.
Architecture keyreg of Entity keyreg is up to date.
===============================================================
==========
* HDL Analysis *
===============================================================
==========
Analyzing Entity <keyreg> (Architecture <keyreg>).
Entity <keyreg> analyzed. Unit <keyreg> generated.
===============================================================
==========
* HDL Synthesis *
===============================================================
==========
===============================================================
==========
HDL Synthesis Report
Macro Statistics
# Registers :1
96-bit register :1
===============================================================
==========
===============================================================
==========
* Advanced HDL Synthesis *
===============================================================
==========
===============================================================
==========
* Low Level Synthesis *
===============================================================
==========
===============================================================
==========
* Final Report *
===============================================================
==========
Final Results
RTL Top Level Output File Name : keyreg.ngr
Top Level Output File Name : keyreg
Output Format : NGC
53
Optimization Goal : Speed
Keep Hierarchy : NO
Design Statistics
# IOs : 195
Macro Statistics :
# Registers :1
# 96-bit register :1
Cell Usage :
# BELS :1
# LUT1 :1
# FlipFlops/Latches : 96
# FDCE : 96
# Clock Buffers :1
# BUFGP :1
# IO Buffers : 194
# IBUF : 98
# OBUF : 96
===============================================================
==========
===============================================================
==========
TIMING REPORT
54
Clock Information:
------------------
-----------------------------------+------------------------+-------+
Clock Signal | Clock buffer(FF name) | Load |
-----------------------------------+------------------------+-------+
Clk | BUFGP | 96 |
-----------------------------------+------------------------+-------+
Timing Summary:
---------------
Speed Grade: -6
Timing Detail:
--------------
All values displayed in nanoseconds (ns)
-------------------------------------------------------------------------
Timing constraint: Default OFFSET IN BEFORE for Clock 'Clk'
Offset: 7.962ns (Levels of Logic = 1)
Source: KeyEna (PAD)
Destination: Dreg_95 (FF)
Destination Clock: Clk rising
===============================================================
==========
CPU : 3.59 / 4.64 s | Elapsed : 4.00 / 5.00 s
-->
SBOX:
56
RTL SCHEMATIC
GATE LEVEL
===============================================================
==========
* Synthesis Options Summary *
===============================================================
==========
57
---- Source Parameters
Input File Name : sbox8x3.prj
Input Format : mixed
Ignore Synthesis Constraint File : NO
Verilog Include Directory :
===============================================================
==========
===============================================================
==========
* HDL Compilation *
===============================================================
==========
Compiling vhdl file c:/xilinx/bin/vasu/KeyReg.vhd in Library work.
Architecture sbox8x3 of Entity sbox8x3 is up to date.
===============================================================
==========
* HDL Analysis *
===============================================================
==========
Analyzing Entity <sbox8x3> (Architecture <sbox8x3>).
INFO:Xst:1561 - c:/xilinx/bin/vasu/KeyReg.vhd line 29: Mux is complete : default of
case is discarded
Entity <sbox8x3> analyzed. Unit <sbox8x3> generated
===============================================================
==========
* HDL Synthesis *
===============================================================
==========
===============================================================
=========
HDL Synthesis Report
Found no macro
===============================================================
==========
===============================================================
==========
* Advanced HDL Synthesis *
===============================================================
==========
===============================================================
==========
* Low Level Synthesis *
===============================================================
==========
===============================================================
==========
* Final Report *
===============================================================
==========
Final Results
RTL Top Level Output File Name : sbox8x3.ngr
60
Top Level Output File Name : sbox8x3
Output Format : NGC
Optimization Goal : Speed
Keep Hierarchy : NO
Design Statistics
# IOs :7
Cell Usage :
# BELS :3
# LUT4 :3
# IO Buffers :7
# IBUF :4
# OBUF :3
===============================================================
Device utilization summary:
---------------------------
TRANSLATION REPORT:
61
FLOOR PLANNING
62
MAPPING REPORT:
Design Summary
--------------
Number of errors: 0
Number of warnings: 0
Logic Utilization:
Number of 4 input LUTs: 3 out of 384 1%
Logic Distribution:
Number of occupied Slices: 2 out of 192 1%
Number of Slices containing only related logic: 2 out of 2 100%
Number of Slices containing unrelated logic: 0 out of 2 0%
*See NOTES below for an explanation of the effects of unrelated logic
Total Number of 4 input LUTs: 3 out of 384 1%
Number of bonded IOBs: 7 out of 86 8%
Maping Report:
The NUMBER OF SIGNALS NOT COMPLETELY ROUTED for this design is: 0
63
KEY GENERATION:
RTL SCHEMATIC
64
GATE LEVEL
65
===============================================================
==========
* Synthesis Options Summary *
===============================================================
==========
---- Source Parameters
Input File Name : keygenblock.prj
Input Format : mixed
Ignore Synthesis Constraint File : NO
Verilog Include Directory :
66
---- General Options
Optimization Goal : Speed
Optimization Effort :1
Keep Hierarchy : NO
Global Optimization : AllClockNets
RTL Output : Yes
Write Timing Constraints : NO
Hierarchy Separator :_
Bus Delimiter : <>
Case Specifier : maintain
Slice Utilization Ratio : 100
Slice Utilization Ratio Delta :5
TRANSLATION REPORT:
67
MAPPING REPORT:
Design Summary
--------------
Number of errors: 0
Number of warnings: 0
Logic Utilization:
Total Number Slice Registers: 419 out of 384 109% (OVERMAPPED)
Number used as Flip Flops: 415
Number used as Latches: 4
Number of 4 input LUTs: 1,016 out of 384 264% (OVERMAPPED)
Logic Distribution:
Number of occupied Slices: 665 out of 192 346%
(OVERMAPPED)
Number of Slices containing only related logic: 648 out of 665 97%
Number of Slices containing unrelated logic: 17 out of 665 2%
*See NOTES below for an explanation of the effects of unrelated logic
Total Number 4 input LUTs: 1,066 out of 384 277% (OVERMAPPED)
Number used as logic: 1,016
Number used as a route-thru: 50
Number of bonded IOBs: 1,060 out of 86 1232% (OVERMAPPED)
IOB Flip Flops: 960
Number of GCLKs: 1 out of 4 25%
Number of GCLKIOBs: 1 out of 4 25%
68
ENCRYPTION:
RTL SCHEMATIC
69
GATE LEVEL
70
SYNTHESIS REPORT:
===============================================================
==========
* Synthesis Options Summary *
===============================================================
==========
---- Source Parameters
Input File Name : encryption.prj
Input Format : mixed
Ignore Synthesis Constraint File : NO
Verilog Include Directory :
71
---- General Options
Optimization Goal : Speed
Optimization Effort :1
Keep Hierarchy : NO
Global Optimization : AllClockNets
RTL Output : Yes
Write Timing Constraints : NO
Hierarchy Separator :_
Bus Delimiter : <>
Case Specifier : maintain
Slice Utilization Ratio : 100
Slice Utilization Ratio Delta :5
Translation Report:
72
DECRYPTION:
GATE LEVEL
73
SYNTHESIS REPORT:
===============================================================
==========
* Synthesis Options Summary *
===============================================================
==========
---- Source Parameters
Input File Name : decryption.prj
Input Format : mixed
Ignore Synthesis Constraint File : NO
Verilog Include Directory :
74
---- General Options
Optimization Goal : Speed
Optimization Effort :1
Keep Hierarchy : NO
Global Optimization : AllClockNets
RTL Output : Yes
Write Timing Constraints : NO
Hierarchy Separator :_
Bus Delimiter : <>
Case Specifier : maintain
Slice Utilization Ratio : 100
Slice Utilization Ratio Delta :5
Translation Report:
75
76
ADVANTAGES
➢ It is a low cost encryption routine targeted for the processors with limited
instruction set.
➢ It is also used in applications where the same constrained device has to perform
both encryption and decryption
APPLICATIONS
77
CONCLUSION
Bibliography
78
Reference books:
Reference Websites:
IEEE Transactions
www.wikipedia.com
www.webopedia.com
79