Chapter 1 Introduction
1.5 Thesis Organization
In the remainder of this thesis, an analysis of possible designs of active agents for active information hiding is described in Chapter 2. In Chapter 3, the proposed method for active covert communication for MPEG videos on web pages is described.
In Chapter 4, the proposed method for active authentication for MPEG videos on web pages is described. In Chapter 5, the proposed methods for active copyright protection are described. In Chapter 6, the proposed methods both for active and for passive covert communications are described. In Chapter 7, the proposed method for authentication of captured images is described. Finally, conclusions and some suggestions for future works appear in Chapter 8.
Chapter 2
Design of Active Agents 2.1 Introduction
To design an effective active agent involves several factors like the access method, the cover media type, the extraction program type, and the platform type. The access method means how to access active agents from public networks. The cover media type means the kind of media used to hide secret data. The extraction program type means the language adopted in writing the program used to extract active agents.
The platform type means where to execute active agents. These four factors about active information hiding are elaborated in Figure 2.1.
Access Information
Hiding
Extraction
Program Platform
From web pages Video ActiveX program PC
From downloaded files
on FTP sites
Image JAVA program Cellular phone From attached
files in E-mails Audio Executable
program Mobile device Text
Figure 2. 1 Factors involved in active information hiding.
In Section 2.1, a detailed definition of the active agent and some application environments will be introduced. In Section 2.2, three different ways about how to access and trigger the active agent will be presented. In Section 2.3, various methods
of hiding active agents in different platforms will be proposed. In Section 2.4, a summary and some discussions will be given.
2.1.1 Definition of Active Agent
Generally speaking, an active agent is an active data stream in the sense that it is executable to perform specific tasks actively by itself, such as an executable program or an applet. The original meaning of the active agent is its role to make the cover media look alive. Each action done by the active agent will let users feel that the cover media did the work by itself. Hidden active agents inject controllability and personality into the media so that the media can control the use of itself to protect itself from misuse or to provide a certain function to proper users of it.
Yu, et al. [15] designed one function, such as copyright protection of the host media, for the active agent. Another meaning of the active agent proposed in this study is to accomplish a certain function without installing an information extraction program on the local computer in advance. Here is an example. When employees working outside want to receive secret messages from superiors, they can use computers in a Cybercafé, for example, to access the Internet and browse a public web page. And on the web page, they can see cover movies and extract secret messages hidden behind the movies without installing a program in advance.
In this study, different kinds of platforms, including cellular phones supporting JAVA programming languages, are utilized to create various types of applications using active agents. They will be introduced in this chapter.
2.1.2 Application Environments
With the advance of computer and information technologies, more and more electronic devices, such as personal digital assistants (PDA), cellular phones, and notebooks (NB), have the mobile computing ability. A lot of complicated computations can be executed on them and wireless connections, such as Wireless Local Area Network (WLAN), General Packet Radio Service (GPRS), Short Messaging System (SMS), Bluetooth, or Infrared Rays technologies, can be used to transmit data to others.
Nowadays, both personal digital assistants and cellular phones are getting more powerful and there is almost no difference between them. The functions which personal digital assistants can do are also being implemented on cellular phones, and vice versa. A very important property which could not be implemented on these devices in the past is that programs written in JAVA or C++ programming languages can be executed now.
In the experimental environment of mobile devices in this study, NOKIA 6600 cellular phones built with the Symbian operating system supporting JAVA programming languages is adopted because this cellular phone supports Mobile Media API (MMAPI) which can be utilized to use the camera built in the cellular phone to take pictures as well as Wireless Messaging API (WMA) which can be utilized to send short messages through a telecommunications company.
The proposed system which is designed by JAVA programming languages can also be executed on personal digital assistants. The reason why we choose JAVA programming languages to be our programming tool is that it can be implemented in various kinds of operating systems as long as these operating systems support these.
2.2 Methods for Active Agent Access
We all know that a program cannot be executed by itself. It needs users to trigger directly or invoke indirectly. Since the active agent is a kind of executable programs embedded in the cover media, it still needs another program, called an extraction program, to trigger. In this study, three different access ways, namely, from web pages, from FTP sites, and from E-mails, are proposed to access the active agent.
2.2.1 From Web Pages
The first way proposed in this study to access the active agent is from web pages.
With the use of ActiveX programs, called extraction programs, active agents can be extracted and executed. After users browse the web page, an ActiveX program can be downloaded into the local computer automatically. When users click the triggering button on the web page, the ActiveX program will extract an active agent hidden in the cover media.
2.2.2 From FTP Sites
The second way to access the active agent proposed in this study is from FTP sites. An executable file, called an extraction program, is used to extract an active agent hidden in the cover media. The cover media will be packaged in an extraction program and transmitted to the receiver site via FTP programs. After receivers acquire this extraction program from a downloaded file and click a triggering button on it, it will extract and execute an active agent.
2.2.3 From E-Mails
The third way proposed in this study to access the active agent is from E-Mails.
An executable file, called an extraction program, is used to extract an active agent hidden in the cover media. The cover media is also included in an extraction program and transmitted to the receiver site via e-mail programs. After receivers acquire this extraction program from an attached file in an electronic mail and click a triggering button on it, it will extract and execute an active agent.
2.3 Methods for Active Agent Hiding
Because the size of the active agent is often very large and the data hiding capacity of the cover media is usually limited, the proposed methods should take this problem into consideration. There are four ways for hiding active agents.
u s e r
Extraction Program
Secret Messages 5. Reply to user
Active Agent
Cover Media
1. Download cover media with active agent
3. Input cover media
4. Extract secret messages from cover media Key
2. Input user key
Figure 2. 2 An illustration of hiding active agents in cover media.
2.3.1 Hiding Agents in Cover Media
The original way proposed by Yu, et al. [15] to hide the active agent is to embed it in the cover media. It is also the most intuitive method because the active agent can be totally hidden in the cover media without involving other media. However, the use of this method will cost a lot of the data hiding capacity. An illustration of the situation about how to hide the active agent in the cover media is shown in Figure 2.2.
In this method, an additive extraction program is necessary for extracting and executing active agents.
u s e r
Secret Messages 4. Reply to user
3. Extract secret messages from cover media 1. Request for
downloading media
Web Page
ActiveX Program
Cover Media
Active Agent
Active Agent
2. Extract active agent from ActiveX program
Figure 2. 3 An illustration of hiding active agents in ActiveX programs.
2.3.2 Hiding Agents in ActiveX Programs
Another way proposed by Chang and Tsai [17] to hide the active agent is to embed it in an ActiveX program. In this method, the ActiveX program on a web page is utilized to hide the active agent. The active agent can be downloaded to the local computer when a user browses the web page. An illustration of the process about embedding and extracting the active agent by this method is shown in Figure 2.3.
2.3.3 Proposed Method for Hiding Agents in ActiveX Programs and Cover Media
For the sake of the convenience of program design and solving the problem of the limited data hiding capacity of the cover media, a method to hide active agents by utilizing ActiveX programs and cover media on web pages is proposed in this study.
The active agent is separated into two parts in this method. One is the main agent which includes a core part of the active agent and a multi-function program, and the other part is the goal agent which gives commands to the main agent.
In the proposed method, the main agent is hidden behind the ActiveX program and the goal agent embedded in the cover media. Because the size of the goal agent is much smaller than that of the main agent, an amount of the data hiding capacity of the cover media can be saved. Since all program functions are designed in the main agent, this main agent can be reused to do different works by different goal agents without redesigning a new active agent. The proposed method is shown in Figure 2.4.
u s e r
Secret Messages 6. Reply to user
5. Extract secret messages from cover media 1. Request for
downloading media
Web Page
ActiveX Program
Main Agent Cover Media
Goal Agent
Main Agent Goal Agent
3. Extract goal agent from cover media
2. Extract main agent from ActiveX program
4. Give command
Figure 2. 4 An illustration of hiding active agents in active programs and cover media.
2.3.4 Proposed Method for Hiding Agents in JAVA Programs
On the platform of a cellular phone, an active agent can be hidden in a JAVA program like hiding it in an ActiveX program on the platform of a personal computer.
The cover media will be packaged with the active agent and compiled into Java Archive (JAR) format which can then be downloaded by users. After completely downloading a JAR file, a user can utilize the active agent to do its predefined task. A
flowchart of the proposed method is shown in Figure 2.5.
u s e r
Secret Messages 4. Reply to user
3. Extract secret messages from cover media JAVA Program
Cover Media 1. Request for
downloading media
Active Agent
Active Agent
2. Extract active agent from JAVA program
Figure 2. 5 An illustration of hiding active agents in JAVA programs.
2.4 Summary and Discussions
In this chapter, several ways about how to access active agents and some methods for hiding active agents are proposed. On different kinds of platforms, different kinds of media are used to hide active agents for saving the data hiding capacity of the cover media.
In the following chapters of this thesis, two execution platforms, including a
personal computer and a cellular phone, and two extraction programs containing an ActiveX program and a JAVA program are adopted. The way to access an active agent investigated in this thesis study is from public web pages and the types of the cover media are images and videos.
Chapter 3
Active Covert Communication by MPEG Videos with Secret
Authentication Capability 3.1 Introduction
Due to the popularity of computer networks, more and more data is transmitted through the public Internet and many security problems arise when secret messages are transmitted. An illicit user can employ various network tools to intercept these secret messages very easily for misuses. Thus, in this study, a video data hiding method with the secret authentication capability for active covert communication is proposed.
In Section 3.2, some reviews of the data hiding method for MPEG videos are made. In Section 3.3, an authentication method for verifying secret messages is proposed, which calculates authentication signals of secret messages and embeds these signals into the messages. In Section 3.4, an active covert communication method for MPEG videos is proposed and two related processes are presented. In Section 3.5, experimental results are shown to prove the proposed methods, and finally in Section 3.6, some discussions and a summary are given .
Method for MPEG Videos
In the MPEG standard, all macroblocks in I frames are intra-coded ones without referencing to others. The compression technique used in I frames is similar to the one of the JPEG standard, so the DCT-based data hiding technique may be applied. There are three kinds of frequency bands, namely, low-frequency bands, middle-frequency ones, and high-frequency ones, in an 8×8 DCT block. In order to maintain a trade-off between imperceptivity and data hiding capacity, the middle-frequency band in Figure 3.1 is chosen to embed secret data in this study.
0 Figure 3. 1 An illustration of an 8×8 DCT block.
P and B frames are inter-coded frames different from I ones and are encoded by motion compensation prediction to reduce the temporal redundancy between frames.
In P frames, there are many forward-coded macroblocks and some intra-coded
macroblocks. In B frames, there are many backward-coded macroblocks, forward-coded macroblocks and some intra-coded macroblocks. Because many motion vectors are used in inter-coded macroblocks to reduce the temporal redundancy, they may be utilized to hide secret data efficiently.
The same encoding type of macroblocks in different kinds of frames facilitates the use of the same method to hide data in them. In Section 3.2.1, a data hiding method based on the use of DCT coefficients in intra-coded macroblocks is introduced. In Section 3.2.2, a method of hiding secret data in forward-coded macroblocks is presented. Then in Section 3.2.3, a method of hiding secret data in backward-coded macroblocks is reviewed.
3.2.1 Process for Hiding Secret Data in I Frames
After MPEG video are processed with variable-length decoding, the quantized DCT coefficients of each 8x8 block of the input I frame can be obtained. An algorithm of the process is described as follows.
Algorithm 1: Hiding secret data in intra-coded macroblocks.
Input: secret data S, and a macroblock M.
Output: a macroblock M’ in which the secret data are embedded.
Steps:
1. Get an 8x8 luminance block L from M which has four 8x8 luminance blocks and find the coefficient Ci whose magnitude is the maximum in each pre-defined section as shown in Figure 3.1.
2. Acquire a bit b of S sequentially and hide it into every Ci. The hiding rules R are illustrated in the following.
≥ 0:
i. if b = 1 and Ci is even, then set Ci = Ci + 1;
ii. if b = 0 and Ci is odd, then set Ci = Ci + 1;
iii. otherwise, leave Ci unchanged.
II. If Ci < 0:
i. if b = 1 and Ci is even, then set Ci = Ci - 1;
ii. if b = 0 and Ci is odd, then set Ci = Ci - 1;
iii. otherwise, leave Ci unchanged.
An illustration of the hiding process for I frames is presented as a flowchart in Figure 3.2 as follows.
Secret Data (S)
I Frame Macroblock
(M)
Apply Hiding Process for Intra-coded
Macroblocks
Stego I Frame
A Bit (b) of Secret Data
Figure 3. 2 A flowchart of the process of hiding secret data in I frames.
3.2.2 Process for Hiding Secret Data in P Frames
There are two encoding types of macroblocks, namely, intra-coded ones and forward-coded ones, in P frames. Because the data hiding method of intra-coded macroblocks is similar to the one used in I frames, in this section, a data hiding method of forward-coded macroblocks is introduced. A detailed algorithm is presented in the following.
Algorithm 2: Hiding secret data in forward-coded macroblocks.
Input: secret data S, and macroblock M.
Output: a macroblock M’ in which the secret data are embedded.
Steps:
1. Acquire a horizontal component H and a vertical one V from a motion vector of the input forward-coded macroblock and use a threshold T to decide if the current macroblock is proper to hide secret data. The decision rule is described as follows:
| H | > T or | V | > T.
The magnitude of T is just a tradeoff between the video quality and the data hiding capacity. The larger T is, the less distortion the video has to bear and the less data can be hidden into the video.
2. Use following embedding rules R to embed a bit b of S into the selected motion vector if the above condition is true.
I. If | H | ≥ | V | and H ≥ 0:
i. if b = 1 and H is even, then set H = H + 1;
ii. if b = 0 and H is odd, then set H = H + 1;
iii. otherwise, leave H unchanged.
II. If | H | ≥ | V | and H < 0:
i. if b = 1 and H is even, then set H = H - 1;
ii. if b = 0 and H is odd, then set H = H - 1;
III. If | H | < | V | and V ≥ 0:
i. if b = 1 and V is even, then set V = V + 1;
ii. if b = 0 and V is odd, then set V = V + 1;
iii. otherwise, leave V unchanged.
IV. If | H | < | V | and V < 0:
i. if b = 1 and V is even, then set V = V - 1;
ii. if b = 0 and V is odd, then set V = V - 1;
iii. otherwise, leave V unchanged.
An illustration of the hiding process for P frames is presented as a flowchart in Figure 3.3 as follows.
Secret Data
Figure 3. 3 A flowchart of the process of hiding secret data into P frames.
3.2.3 Process for Hiding Secret Data in B Frames
There are three encoding types of macroblocks, namely, intra-coded ones, forward-coded ones and backward-coded ones, in B frames. Both data hiding methods for intra-coded macroblocks and for forward-coded macroblocks in B frames are similar to those in P frames. In this section, a data hiding method for backward-coded macroblocks is introduced. A corresponding algorithm is described in the following.
Algorithm 3: Hiding secret data in backward-coded macroblocks.
Input: secret data S, and macroblock M.
Output: a macroblock M’ in which the secret data are embedded.
Steps:
1. Acquire a horizontal component H and a vertical one V from a motion vector of the input backward-coded macroblock and use a threshold T to decide if the current macroblock is proper to hide secret data by the following rule:
| H | > T or | V | > T.
2. Use following embedding rules R to embed a bit b of S into the selected motion vector if the above condition is true.
I. If | H | ≥ | V | and H ≥ 0:
i. if b = 1 and H is even, then set H = H + 1;
ii. if b = 0 and H is odd, then set H = H + 1;
iii. otherwise, leave H unchanged.
II. If | H | ≥ | V | and H < 0:
i. if b = 1 and H is even, then set H = H - 1;
ii. if b = 0 and H is odd, then set H = H - 1;
iii. otherwise, leave H unchanged.
III. If | H | < | V | and V ≥ 0:
i. if b = 1 and V is even, then set V = V + 1;
ii. if b = 0 and V is odd, then set V = V + 1;
iii. otherwise, leave V unchanged.
IV. If | H | < | V | and V < 0:
i. if b = 1 and V is even, then set V = V - 1;
ii. if b = 0 and V is odd, then set V = V - 1;
iii. otherwise, leave V unchanged.
Secret Data
Intra-coded Macroblock Forward -coded Macroblock
Apply Hiding Process for Backward-coded
Macroblocks
Backward-coded Macroblock
Figure 3. 4 A flowchart of the process of hiding secret data in B frames.
Just like what we mentioned before, the magnitude of T used in Step 1 above is just a tradeoff between the video quality and the data hiding capacity. The larger T is,
the less distortion the video has to bear and the less data can be hidden into the video.
An illustration of the hiding process for B frames is presented as a flowchart in Figure 3.4 as follows.
3.3 Authentication Method for Secret Messages
Under the process of transmitting the cover media with the secret messages on public networks, malicious users might use various methods to intercept the cover media and try to extract the secret messages hidden in it or modify the secret messages to cheat the receiver who needs the secret messages. If this receiver is an
Under the process of transmitting the cover media with the secret messages on public networks, malicious users might use various methods to intercept the cover media and try to extract the secret messages hidden in it or modify the secret messages to cheat the receiver who needs the secret messages. If this receiver is an