Design and Implementation of A Secret Key Steganographic Micro-Architecture Employing FPGA
Design and Implementation of A Secret Key Steganographic Micro-Architecture Employing FPGA
Abstract
In the well-known prisoners' problem, a representative
example of steganography, two persons attempt to
communicate covertly without alerting the warden. One
approach to achieve this task is to embed the message in
an innocent-looking cover-media. In our model, the
message contents are scattered in the cover in a certain
way that is based on a secret key known only to the sender
and receiver. Therefore, even if the warden discovers the
existence of the message, he will not be able to recover it.
In other words a covert or subliminal communication
channel is opened between two persons who possess a
secret key to reassemble its contents. In this article, we
propose a video or audio steganographic model in which
the hidden message can be composed and inserted in the
cover in real-time. This is realized by designing and
implementing a secret key steganographic microarchitecture employing Field Programmable Gate Arrays
FPGA.
Keywords: Steganography, data hiding, FPGA,
architecture, covert communications, subliminal channel.
1. Introduction
Quite recently, information hiding techniques have gained
extended attention in a number of application areas,
namely watermarking,
fingerprinting, captioning,
steganography and covert channels [1]. Moreover, a rather
new and interesting application of data embedding is
granting users with different access levels to the data [2].
In this work, we present a hardware implementation of a
secret-key steganographic algorithm. The basic idea of our
algorithm is selecting the hiding bits in a pseudorandom
manner as a function of a secret key to increase obscurity.
We compare the performance of this algorithm to former
algorithms found in the literature [3, 4]. By means of this
performance comparison, as shown in section 5, we
2. The Algorithm
In the following few lines, we provide a summary of our
algorithm that can be applied to video frames, audio files
or any type of covers to hide a given message. This
message hiding uses a secret key known only to sender
and receiver.
ALGORITHM STEGO
[Given a message, the aim of the algorithm is to hide this
message into a cover such that even if an attacker detects the
existence of the message he or she will not be able to recover it
without the secret key that is known only to sender and receiver.]
Input: Message M, Cover C, Key K, StateRegister SR
Algorithm Body:
Begin
1. Load a block of the message Blki
into the message cache MC:
Blki [M] [MC];
2. Load Key into the key Cache:
K [KC];
3. Generate an address Adi;
4. Address memory to get one cover word CW:
M [Adi] CWi;
5. Hide two message bits (mi, mi+1)
by replacing (C0, C8) in the cover word CW
with (Mi, Mi+1):
C [15:9], Mi+1,C[7:1],Mi CM ;
6. Write back steganographic word:
CMi CWi;
7. If message cache is not empty:
7.1 Circulate key cache one bit right:
Proceedings of the Design, Automation and Test in Europe Conference and Exhibition Designers Forum (DATE04)
1530-1591/04 $20.00 2004 IEEE
Circ1R [KC];
7.2 Shift message cache one bit right:
Shif1R [MC];
7.3 Goto 3:
GenerateAddressState SR;
8. Else if message cache is empty:
If message not finished
8.1 Load next block into message cache:
Blki +1 [M] [MC];
8.2 Goto 3:
GenerateAddressState SR;
Else if message is finished then halt;
End Algorithm.
Output: Modulated Cover CM
3. The Micro-architecture
The architecture is divided into an embedder processor
and an SDRAM controller as shown in Figure B-1. The
embedder processor, depicted in Figure 1, issues read and
write commands to the memory, which are processed and
reformatted by the SDRAM control and waits for a
confirmation from memory to ensure stabilized output.
The controller halts the process when hiding is complete.
In the next sections we discuss the various building blocks
of our proposed micro-architecture.
8 bits
Address
Address
Generator
Key Cache
17 bits
6 bits
Data In
Data Out
Stego Block
Message
Cache
16 bits
8 bit
Memory
of Pointers
Concatenate
and Shift Left
Shuffler
512 bit
8 bit
17 bit
2 bits
13 bits
Message
Counter
Logic
gates
10 bits
Key
Counter
4 bits
Output control
signals
Status
register
Control
Unit
10 bits
10 bits
Proceedings of the Design, Automation and Test in Europe Conference and Exhibition Designers Forum (DATE04)
1530-1591/04 $20.00 2004 IEEE
image and attempts all blocks evenly. This new key will
also avoid large repetition in the key octets. The histogram
in Figure 3 is not uniform and the key doesnt cover the
whole key space. This is an indication of a bad key.
This key will make hiding biased to a certain area in the
image. The histogram in Figure 4 is almost uniform and
the key covers 100% of the key space, which proves that
all image blocks will be attempted evenly. This key is
shared by the sender and the receiver to reassemble the
message at the receiver side, as mentioned before.
Number of octet
titi
80
60
40
20
0
16
24
32
40
48
Key octet values
56
64
16
24
32
40
48
Key octet values
56
64
Proceedings of the Design, Automation and Test in Europe Conference and Exhibition Designers Forum (DATE04)
1530-1591/04 $20.00 2004 IEEE
State register
8 bits
10 bits
x Pre-charge
x Column address and write command
x Column address and read command
x Auto refresh command
A sequence of these commands comprises the primitive
operations of read, write and refresh. The circuit
realizations of all of the above are shown in Appendix B.
3 bits
3 x 8 decoder
Proceedings of the Design, Automation and Test in Europe Conference and Exhibition Designers Forum (DATE04)
1530-1591/04 $20.00 2004 IEEE
Number of cycles
Frequency in MHz
Throughput in Mbps
Shuffler
Design using
SHA
Design using
MD5
1
35.4
1.576
210
38.6
0.174
342
60.2
0.170
(1)
Figure 9: Laplacian Filter. (a) Filter output of cover image. (b) Filter output of
modultated cover image. (c) Filter output of distorted cover
Proceedings of the Design, Automation and Test in Europe Conference and Exhibition Designers Forum (DATE04)
1530-1591/04 $20.00 2004 IEEE
References
[1] F. Petitcolas, R. Anderson, and Kuhn, Information hiding
a survey, IEEE proceedings, special issue on protection of
multimedia content, vol. 87, No. 7, pp.1062-1078, Jul. 1999.
[2] D. Swanson, M. Kobayashi, A. Tewfik, Multimedia Data
Embedding and Watermarking Technologies, proceedings of
the IEEE, vol. 86, no. 6, June 1998, pp.1064-1087.
Embedder Processor
SDRAM controller
Control
Unit
Message
Module
Hiding
Module
Key
Module
Address
Generator
Memory
Control
Proceedings of the Design, Automation and Test in Europe Conference and Exhibition Designers Forum (DATE04)
1530-1591/04 $20.00 2004 IEEE