Improving Security and Capacity for Arabic Text Steganography Using 'Kashida' Extensions By : Fahd Al-Haidari Adnan Gutub Khalid Al-Kahsah Jamil Hamodi.

Slides:



Advertisements
Similar presentations
Introduction to Computer Science 2 Lecture 7: Extended binary trees
Advertisements

Michael Alves, Patrick Dugan, Robert Daniels, Carlos Vicuna
Data Representation COE 202 Digital Logic Design Dr. Aiman El-Maleh
Mohammed Aabed Sameh Awaideh Abdul-Rahman Elshafei.
1 Adnan Gutub Computer Engineering King Fahd University of Petroleum & Minerals Saudi Arabia A Novel Arabic Text Steganography Method Using Letter Points.
RGB Intensity Based Variable- Bits Image Steganography 2008 IEEE Asia-Pacific Services Computing Conference (APSCC 2008) 1 st International Workshop on.
Data Representation Computer Organization &
Differences between Java and C CS-2303, C-Term Differences between Java and C CS-2303, System Programming Concepts (Slides include materials from.
1 9/24/07CS150 Introduction to Computer Science 1 Relational Operators and the If Statement.
ARABIC TEXT STEGANOGRAPHY USING MULTIPLE DIACRITICS Adnan Gutub Yousef Elarian Sameh Awaideh Aleem Alvi Computer Engineering Department King Fahd University.
Data Representation COE 205
Connecting with Computer Science, 2e
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
8 November Forms and JavaScript. Types of Inputs Radio Buttons (select one of a list) Checkbox (select as many as wanted) Text inputs (user types text)
Adnan Gutub Mahmoud Ankeer Muhammad AbuGhalioun
1 CS150 Introduction to Computer Science 1 Relational Operators and the If Statement 9/22/08.
A bit can have one of two values: 0 or 1. The C language provides four operators that can be used to perform bitwise operations on the individual bits.
CS 591 C3S C ryptography & S teganography S ecure S ystem By: Osama Khaleel.
Using Multiple Diacritics in Arabic Scripts for Steganography By Yousef Salem Elarian Aleem Khalid Alvi 1.
Connecting with Computer Science 2 Objectives Learn why numbering systems are important to understand Refresh your knowledge of powers of numbers Learn.
DETECTING NEAR-DUPLICATES FOR WEB CRAWLING Authors: Gurmeet Singh Manku, Arvind Jain, and Anish Das Sarma Presentation By: Fernando Arreola.
 2003 Prentice Hall, Inc. All rights reserved. 1 Introduction to C++ Programming Outline Introduction to C++ Programming A Simple Program: Printing a.
MATH 224 – Discrete Mathematics
Computers Organization & Assembly Language
Introduction to Python
General Computer Science for Engineers CISC 106 Lecture 02 Dr. John Cavazos Computer and Information Sciences 09/03/2010.
Foundations of Computer Science Computing …it is all about Data Representation, Storage, Processing, and Communication of Data 10/4/20151CS 112 – Foundations.
University of Palestine University of Palestine Eng. Wisam Zaqoot Eng. Wisam Zaqoot May 2011 May 2011 Steganalysis ITSS 4201 Internet Insurance and Information.
Android-Stego: A Novel Service Provider Imperceptible MMS Steganography Technique Robust to Message Loss Authors: Avinash Srinivasan, Jie Wu, and Justin.
Damageless Information Hiding Technique using Neural Network Keio University Graduate School of Media and Governance Kensuke Naoe.
Data Structures Chapter 1- Introduction Mohamed Mustaq.A.
Data Hiding in binary images using block parity Group ID -17 Guided by Mr. Pramod Ganjewar By – Sipendra Sinha Deepak Kumar Rohit Singh Amol Gaikwad Snehal.
Introduction to Programming (in C++) Loops Jordi Cortadella, Ricard Gavaldà, Fernando Orejas Dept. of Computer Science, UPC.
Bit-4 of Frequency Domain-DCT Steganography Technique 1 Nedal M. S. Kafri and Hani Y. Suleiman Networked Digital Technologies, NDT '09. First International.
Week 1 Algorithmization and Programming Languages.
A Novel steganographic method for JPEG images by Vasiliy Sachnev - Introduction  JPEG compression  Steganography - Block based steganography method (F5)
Implementation of Least Significant Bit Image Steganography and its Steganalaysis By: Deniz Oran Fourth Quarter.
Data Representation Bits, Bytes, Binary, Hexadecimal.
Huffman Codes Juan A. Rodriguez CS 326 5/13/2003.
Benchmarking steganographic and steganalysis techniques Electronic Imaging of SPIE 2005 Authors:Kharrazi, Mehdi, Husrev T. Sencar, and Nasir Memon Department.
Introduction to Python Dr. José M. Reyes Álamo. 2 Three Rules of Programming Rule 1: Think before you program Rule 2: A program is a human-readable set.
VISUAL C++ PROGRAMMING: CONCEPTS AND PROJECTS Chapter 2A Reading, Processing and Displaying Data (Concepts)
Advanced Science and Technology Letters Vol.35(Security 2013), pp Image Steganograpy via Video Using Lifting.
Using Multiple Diacritics in Arabic Scripts for Steganography By Yousef Salem Elarian Aleem Khalid Alvi.
 Image based Steganography  Previous Work  Message Concealment Techniques  Using Punctuation Marks  Using modified Scytale Cipher  S-Tools Software.
Implementation of Steganographic Techniques Danny Friedheim pd. 2.
南台科技大學 資訊工程系 Data hiding based on the similarity between neighboring pixels with reversibility Author:Y.-C. Li, C.-M. Yeh, C.-C. Chang. Date:
Designing an Embedded Algorithm for Data Hiding using Steganographic Technique by File Hybridization G. Sahoo1 and R. K. Tiwari2 Presented by Pan Meng.
Lecture #1: Introduction to Algorithms and Problem Solving Dr. Hmood Al-Dossari King Saud University Department of Computer Science 6 February 2012.
Implementation of Least Significant Bit Image Steganography and its Steganalaysis By: Deniz Oran Third Quarter.
A NOVEL STEGANOGRAPHY METHOD VIA VARIOUS ANIMATION EFFECTS IN POWERPOINT FILES Internal guide Mrs. Hilda By Syed Ashraf ( ) Sushil sharma ( )
1 Chapter 1: Basic Concepts Assembly Language for Intel-Based Computers, 4th edition Kip R. Irvine 9/6/2003.
Chair Professor Chin-Chen Chang Feng Chia University Jan. 2008
Completing the Problem-Solving Process
Steganography Example
A Secret Information Hiding Scheme Based on Switching Tree Coding
Adnan Abdul-Aziz Gutub* and Ahmed Ali Al-Nazer
Chapter 14 Bitwise Operators Objectives
A Data Hiding Scheme Based Upon Block Truncation Coding
Hiding Data in a Color Palette Image with Hybrid Strategies
Fundamentals of Python: First Programs
Reversible Data Hiding Scheme Using Two Steganographic Images
Chair Professor Chin-Chen Chang (張真誠) National Tsing Hua University
Authors: Chin-Chen Chang, Yi-Hui Chen, and Chia-Chen Lin
Data hiding method using image interpolation
一種兼顧影像壓縮與資訊隱藏之技術 張 真 誠 國立中正大學資訊工程學系 講座教授
A Data Hiding Scheme Based Upon Block Truncation Coding
Department of Computer Science, University of Central Florida ,Orlando
Chair Professor Chin-Chen Chang Feng Chia University Jan. 2008
Lossless Data Hiding in the Spatial Domain for High Quality Images
Presentation transcript:

Improving Security and Capacity for Arabic Text Steganography Using 'Kashida' Extensions By : Fahd Al-Haidari Adnan Gutub Khalid Al-Kahsah Jamil Hamodi Collage of Computer Sciences & Engineering King Fahd University of Petroleum and Minerals Dhahran 31261, Saudi Arabia

Outlines: Introduction Introduction Background and related works Background and related works Our approach and methodology Our approach and methodology Results and discussion Results and discussion Conclusion Conclusion Q & A Q & A

Introduction Steganography What is it? What is the different between Steg. & Crypt. ? Steg. Applications. Steganography mean issues Security Capacity Robustness

Background Arabic language features: Arabic language features: Dots Dots Diacritics Diacritics Connectivity Connectivity

Related works Doted letters Doted letters Shifting dots up. [Shirali-Shahreza & others, 2006] Shifting dots up. [Shirali-Shahreza & others, 2006] negative robustness negative robustness depends on using the same fixed font depends on using the same fixed font Kashida Kashida With doted letters. [A. Gutub & others, 2007] With doted letters. [A. Gutub & others, 2007] solves the problem of the negative robustness solves the problem of the negative robustness font independent font independent Less security Less security Less capacity Less capacity

Related works Diacritics Diacritics One Diacritic. [M. Aabed & others, 2007] One Diacritic. [M. Aabed & others, 2007] high capacity high capacity implemented easily implemented easily sending Arabic message with diacritics might raise suspicions nowadays sending Arabic message with diacritics might raise suspicions nowadays Arabic font has different encodings on different machines (computer dependant ) Arabic font has different encodings on different machines (computer dependant ) Multiple Diacritics. [Adnan Gutub & others, 2008] Multiple Diacritics. [Adnan Gutub & others, 2008] High capacity High capacity More than one scenario More than one scenario

Proposed approach Idea Idea Algorithm Algorithm Examples Examples Implementation Implementation

Proposed approach The main idea The main idea Create a coding system based on: Create a coding system based on: locations of extendable characters locations of extendable characters inserted Kashidahs inserted Kashidahs E.g. E.g. With 3 possible loactions With 3 possible loactions using at most 3 Kashidahs: using at most 3 Kashidahs:  Can represent 8 values (3 bits). In general, the block size can be given as: In general, the block size can be given as: values

Proposed approach Algorithm 1 Hiding secret bits Input: message, cover text Output: stego text initialize k with maximum Kashidas used per word. while data left to embed do get next word from cover text get next word from cover text n  the number of possible extendable letters. n  the number of possible extendable letters. if n > 0 then if n > 0 then s  calculate the block size based on n and k. s  calculate the block size based on n and k. get the value of the next s-bit message block. get the value of the next s-bit message block. determine the positions that represent the value. determine the positions that represent the value. insert Kashida into the word at positions. insert Kashida into the word at positions. insert the word into stego text. insert the word into stego text. end if end if end while

Proposed approach Algorithm Algorithm Algorithm 2 Extracting secret bits Input: stego text Output: message initialize k with maximum Kashidas used per word. while word left to process do get next word from stego text get next word from stego text n  the number of possible extendable letters. n  the number of possible extendable letters. if n > 0 then if n > 0 then s  calculate the block size based on n and k. s  calculate the block size based on n and k. determine the positions of existed Kashidas. determine the positions of existed Kashidas. get the value represented by positions get the value represented by positions get the s-bits block representing the value. get the s-bits block representing the value. insert the s-bits block into message. insert the s-bits block into message. end if end if end while

Proposed approach Example hide secret bits Example hide secret bits maximum Kashidas maximum Kashidas K=3 K=3 The word = “ يسمع ”, The word = “ يسمع ”, secret bits=“10100” secret bits=“10100” Block size Block size N=3, extendable letters N=3, extendable letters possible values= =8 possible values= =8 Block_size, s =log 8 =3 Block_size, s =log 8 =3 The value The value 3-bits block= (100), value =4 3-bits block= (100), value =4 The positions The positions Positions=table[N,value] = {1,2} Positions=table[N,value] = {1,2} Insert Kashida at position {1,2} Insert Kashida at position {1,2} Stego_text=“ يـسـمع ” Stego_text=“ يـسـمع ” Table[pk,x]list [3,0]0 [3,1]1 [3,2]2 [3,3]3 [3,4]1,2 [3,5]1,3 [3,6]2,3 [3,7]1,2,3

Proposed approach Example retrieve the hidden bits Example retrieve the hidden bits Stego_text=“ يـسـمع ” Stego_text=“ يـسـمع ” maximum Kashidas maximum Kashidas K=3 K=3 Block size Block size N=3, extendable letters N=3, extendable letters possible values= =8 possible values= =8 Block_size, s =log 8 =3 Block_size, s =log 8 =3 Existed kashidas Existed kashidas Positions  {1,2} Positions  {1,2} Extracted bits Extracted bits Value  4, From the table Value  4, From the table 3 bits  bits  100 Table[pk,x]list [3,0]0 [3,1]1 [3,2]2 [3,3]3 [3,4]1,2 [3,5]1,3 [3,6]2,3 [3,7]1,2,3

Proposed approach : implementation for (int i = 0; i < split.Length; i++) for (int i = 0; i < split.Length; i++) { { k = num_kasheda(split[i], k_positions); k = num_kasheda(split[i], k_positions); // get the proper block size // get the proper block size switch (k) switch (k) { { case 1: case 2: case 3 case 1: case 2: case 3 block_size = k; block_size = k; break; break; case 4: case 5: case 6: case 7: case 8: case 4: case 5: case 6: case 7: case 8: block_size = k-1; block_size = k-1; break; break; } } // get the block of secret bits // get the block of secret bits if (hide_p >= hide.Length) { finished = true; break; } if (hide_p >= hide.Length) { finished = true; break; } if ((hide.Length - hide_p) < block_size) block_size = hide.Length - hide_p; if ((hide.Length - hide_p) < block_size) block_size = hide.Length - hide_p; hide_block = hide.Substring(hide.Length - hide_p - block_size, block_size); hide_block = hide.Substring(hide.Length - hide_p - block_size, block_size); hide_p += block_size; // advance the pointer in hiden text hide_p += block_size; // advance the pointer in hiden text // get the corresponding value of the block // get the corresponding value of the block value = get_value(hide_block); value = get_value(hide_block); if (value != 0) if (value != 0) { // insert Kashidahs into K_positions { // insert Kashidahs into K_positions split[i] = insert_kasheda_3(split[i], k, k_positions, value); split[i] = insert_kasheda_3(split[i], k, k_positions, value); } } }

Proposed approach : implementation for (int i = 0; i < split.Length; i++) for (int i = 0; i < split.Length; i++) { { pk = num_kasheda(split[i], k_positions); pk = num_kasheda(split[i], k_positions); ek = num_exist_kasheda(split[i], k_positions); ek = num_exist_kasheda(split[i], k_positions); // the block size // the block size switch (pk) switch (pk) { { case 1: case 2: case 3: case 1: case 2: case 3: block_size = pk; block_size = pk; break; break; case 4: case 5: case 6: case 7: case 4: case 5: case 6: case 7: block_size = pk-1; block_size = pk-1; break; break; } } value = 0; value = 0; // locate the coding table at k_position, return the value // locate the coding table at k_position, return the value for (int x1 = 0; x1 <= Math.Pow(2, block_size); x1++) for (int x1 = 0; x1 <= Math.Pow(2, block_size); x1++) { { bool ok = true; bool ok = true; for (int i1 = 0; i1 < ek; i1++) for (int i1 = 0; i1 < ek; i1++) if (table[pk, x1].list[i1] != k_positions[i1]) ok = false; if (table[pk, x1].list[i1] != k_positions[i1]) ok = false; if (ok) if (ok) { { value = x1; value = x1; break; break; } } // convert it into binary bits // convert it into binary bits int x=0; int x=0; for (int j = 0; j < block_size; j++) for (int j = 0; j < block_size; j++) { { x = value >> j; x = value >> j; x = x & 1; x = x & 1; hide_block = x.ToString() + hide_block; hide_block = x.ToString() + hide_block; } } } Table[pk,x]list [3,0]0 [3,1]1 [3,2]2 [3,3]3 [3,4]1,2 [3,5]1,3 [3,6]2,3 [3,7]1,2,3

Results & discussion Capacity Capacity Security Security

Results & discussion Capacity Capacity The capacity can be evaluated The capacity can be evaluated by the capacity ratio by the capacity ratio dividing the amount of hidden bytes over the size of cover text dividing the amount of hidden bytes over the size of cover text useable characters ratio. useable characters ratio. using p for the ratio of characters capable of baring ‘1’ using p for the ratio of characters capable of baring ‘1’ and q for the ratio of characters capable of baring ‘0’. and q for the ratio of characters capable of baring ‘0’. p=q, assuming that 50% of secret bits are ‘1’ p=q, assuming that 50% of secret bits are ‘1’ Thus, usable characters ratio =(p+q)/2. Thus, usable characters ratio =(p+q)/2.

Results & discussion The results show that capacity ratio increases when the number of Kashidah per word increases. The results show that capacity ratio increases when the number of Kashidah per word increases. The scenario of using three Kashidahs outperforms the other scenarios in our approach. The scenario of using three Kashidahs outperforms the other scenarios in our approach. Also, it outperforms the other existing approaches in literature in terms of capacity Also, it outperforms the other existing approaches in literature in terms of capacity Table 1 Capacity ratio of our proposed approach Approach Cover Size Capacity (%) Average capacity (%) One Kashidah Two Kashidahs Three Kashidahs Table 2 Reported Capacity Ratio in LiteratureApproach Cover Size Capacity (%) Average capacity (%) Kashidah [1] Diacritics [5] 318, ,34, , , Dots [3]

Results & discussion The results show that our proposed approach outperforms the other approaches in terms of usable characters ratio. The results show that our proposed approach outperforms the other approaches in terms of usable characters ratio. Our proposed approach shows a ratio of about 0.39, where as, the others show a ratio of about 0.36 as it is shown in Table 4. Our proposed approach shows a ratio of about 0.39, where as, the others show a ratio of about 0.36 as it is shown in Table 4. Table 3 Usable Characters Ratio of Our ApproachTable 4 Reported Usable Characters Ratio in Literature Approachpqr(p+r+q)/2 Dots Kashidah-Before Diacritics File size (bytes) Pqr(p+r+q)/

Results & discussion For the security, using a lot of extensions within a word in the cover text media, will reduces the security. For the security, using a lot of extensions within a word in the cover text media, will reduces the security. In [1], one extension kashidah may represent one bit. In [1], one extension kashidah may represent one bit. E.g. the word “ سنمتعهم ” ; secret bits as ”001010”. E.g. the word “ سنمتعهم ” ; secret bits as ”001010”. 6 extension kashidahs will be inserted in this word, 6 extension kashidahs will be inserted in this word, “ سـنـمـتـعـهـم ”. “ سـنـمـتـعـهـم ”. our proposed approach improves this issue by restricting the inserted Kashidahs per word. our proposed approach improves this issue by restricting the inserted Kashidahs per word. E.g. Using at most three Kashidahs: E.g. Using at most three Kashidahs: 2 kashidahs will be inserted at position 1,5 to hide (01010) 2 kashidahs will be inserted at position 1,5 to hide (01010) “ سـنمتعـهم ” “ سـنمتعـهم ”

Conclusion A novel algorithm for text steganography A novel algorithm for text steganography in Arabic language in Arabic language and other similar Semitic languages. and other similar Semitic languages. Implemented different scenarios Implemented different scenarios Using at most 0ne, two, and three Kashidahs. Using at most 0ne, two, and three Kashidahs. Evaluated and compared in terms of capacity to the existing Arabic text steganography in literature. Evaluated and compared in terms of capacity to the existing Arabic text steganography in literature. It was superior in terms of capacity. It was superior in terms of capacity. showed more security than the existing Kashidah approach showed more security than the existing Kashidah approach

Q&A