0% found this document useful (0 votes)
46 views

Data Compression & Encryption - Prof - S. Chaya

The document describes Scilab code solutions for experiments in data compression and encryption. It contains 5 solutions: 1) Huffman encoding of a sequence, 2) Huffman decoding of a compressed bit sequence, 3) implementation of the RSA algorithm, 4) the Diffie-Hellman key exchange method, and 5) image compression using block truncation coding. The document provides the Scilab code for each solution and describes the purpose and functionality of the code. It also includes figures and lists to support understanding of the solutions.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
46 views

Data Compression & Encryption - Prof - S. Chaya

The document describes Scilab code solutions for experiments in data compression and encryption. It contains 5 solutions: 1) Huffman encoding of a sequence, 2) Huffman decoding of a compressed bit sequence, 3) implementation of the RSA algorithm, 4) the Diffie-Hellman key exchange method, and 5) image compression using block truncation coding. The document provides the Scilab code for each solution and describes the purpose and functionality of the code. It also includes figures and lists to support understanding of the solutions.
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 17

Scilab Manual for

Data Compression & Encryption


by Prof S. Chaya
Electronics Engineering
Anjuman I Islam’s Kalsekar Technical
Campus1

Solutions provided by
Prof chaya s
Electronics Engineering
Anjuman I Islam’s Kalsekar Technical Campus

July 10, 2023

1 Funded by a grant from the National Mission on Education through ICT,


http://spoken-tutorial.org/NMEICT-Intro. This Scilab Manual and Scilab codes
written in it can be downloaded from the ”Migrated Labs” section at the website
http://scilab.in
1
Contents

List of Scilab Solutions 3

1 Huffman Encoding of a sequence 5

2 Huffman Decoding of a compressed bit sequence. 6

3 Implementation of RSA Algorthim 7

4 Diffie Hellman Key Exchange Method 10

5 Image Compression Using Block Truncation Coding 12

2
List of Experiments

Solution 1.1 Huffman encoding . . . . . . . . . . . . . . . . . . 5


Solution 2.1 Huffman Decoding . . . . . . . . . . . . . . . . . 6
Solution 3.1 RSA Algorthim . . . . . . . . . . . . . . . . . . . 7
Solution 4.1 Diffie Hellman Key Exchange . . . . . . . . . . . 10
Solution 5.5 block truncation in image . . . . . . . . . . . . . 12
AP 1 LENA IMAGE . . . . . . . . . . . . . . . . . . . 16

3
List of Figures

3.1 RSA Algorthim . . . . . . . . . . . . . . . . . . . . . . . . . 8

5.1 block truncation in image . . . . . . . . . . . . . . . . . . . 13

4
Experiment: 1

Huffman Encoding of a
sequence

Scilab code Solution 1.1 Huffman encoding

1
2 //OS : Linux
3 // T o o l Box−Huffman c o d i n g
4 // S c i l a b V e r s i o n : S c i l a b 5 . 4 . 1
5 // G e n e r a t e a T e s t m a t r i x
6 A = testmatrix ( ’ f r k ’ ,10) +1;
7 A = A (:) . ’;
8 [ QT , QM ]= huffcode ( A ) ;
9 disp ( ’ c o m p r e s s e d B i t s e q u e n c e : ’ ) ;
10 disp ( QT ) ;
11 disp ( ’ Code T a b l e : ’ ) ;
12 disp ( QM ) ;
13 // End o f Demo

5
Experiment: 2

Huffman Decoding of a
compressed bit sequence.

Scilab code Solution 2.1 Huffman Decoding

1 // program t o p e r f o r m huffman d e c o d i n g
2 //OS : Linux
3 // T o o l Box−Huffman c o d i n g
4 // S c i l a b V e r s i o n : S c i l a b 5 . 4 . 1
5 // G e n e r a t e a T e s t m a t r i x
6 A = testmatrix ( ’ f r k ’ ,10) +1;
7 A = A (:) . ’;
8 [ QT , QM ]= huffcode ( A ) ;
9 disp ( ’ c o m p r e s s e d B i t s e q u e n c e : ’ ) ;
10 disp ( QT ) ;
11 disp ( ’ Code T a b l e : ’ ) ;
12 disp ( QM ) ;
13 // Now , t h e r e v e r s e o p e r a t i o n
14 B = huffdeco ( QT , QM ) ;
15 disp ( ’ O r i g i n a l : ’ ) ;
16 disp ( A ) ;
17 disp ( ’ R e s u l t a f t e r Uncompress : ’ ) ;
18 disp ( B ) ;

6
Experiment: 3

Implementation of RSA
Algorthim

Scilab code Solution 3.1 RSA Algorthim

1 //OS : Windows 7
2 // S c i l a b V e r s i o n : S c i l a b 5 . 4 . 1
3 clc ;
4 clear all ;
5 p = input ( ” E n t e r t h e 1 s t p r i m e no . ” ) ; // I n p u t : Taking
t h e f i r s t p r i m e no . f o r RSA
6 // I n p u t ex . p=11
7 q = input ( ” E n t e r t h e 2 nd p r i m e no . ” ) ; // I n p u t : Taking
t h e s e c o n d p r i m e no . f o r RSA
8 // I n p u t ex . q=5
9 n=p*q;
10 phi =( p -1) *( q -1) ; // T u o t i e n t F u n c t i o n
11 printf ( ” E n t e r t h e v a l u e o f e >400 ” ) ; // I n p u t :
value
o f e ( s u c h t h a t p h i and t h e no . e n t e r e d by you
are r e l a t i v e l y prime )
12 // I n p u t ex . p h i =7
13 e = input ( ” ” ) ;

7
Figure 3.1: RSA Algorthim

14 for i = 1: n
15 z = modulo (( i * e ) , phi ) ;
16 if z == 1 then
17 break ;
18 end
19 end
20 printf ( ” \ nThe p u b l i c key i s (%. d” ,e ) ; // Output : The
p u b l i c key i s ( e , n )
21 // Output f o r ex . p u b l i c key ( 7 , 5 5 )
22 printf ( ” ,%. d ) ” ,n ) ;
23 printf ( ” \ nThe p r i v a t e key i s (%. d ” ,i ) ; // Output :
The p r i v a t e key i s ( i , n )
24 // Output ex . p r i v a t e key ( 2 3 , 5 5 )
25 printf ( ” ,%. d ) ” ,n ) ;
26 m = input ( ” E n t e r t h e number t o be e n c r y p t e d ” ) ; //
I n p u t : Taking t h e m e s s a g e t o be e n c r y p t e d
27 // I n p u t ex . 5
28 a=m^e;
29 c = modulo (a , n ) ;
30 printf ( ” \ nThe e n c r y p t e d m e s s a g e i s %. d ” ,c ) ; // Output

8
: P r i n t i n g the encrypted message
31 // Output f o r ex . 25
32 b=c^i;
33 t = modulo (b , n ) ;
34 printf ( ” \ nThe d e c r y p t e d m e s s a g e i s %. d ” ,m ) ; // Output
: D e c r y p t e d Me ss age
35 // Output f o r ex . 5

9
Experiment: 4

Diffie Hellman Key Exchange


Method

Scilab code Solution 4.1 Diffie Hellman Key Exchange

1 //OS : Windows 7
2 // S c i l a b V e r s i o n : S c i l a b 5 . 4 . 1
3 clc ;
4 clear all ;
5 p =[13]; // i n p u t ( ” E n t e r t h e common p r i m e number ( p ) ” )
; / / I n p u t : t a k i n g common p r i m e number a s i n p u t
6 // I n p u t ex . p=13
7 g =[6]; // i n p u t ( ” E n t e r t h e p r i m i t i v e
r o o t ( g ) ( any no . )
”) ;// Input : taking p r i m i t i v e root as input
8 // I n p u t ex . g=6
9 a =[3]; // i n p u t ( ” E n t e r s e c r e t key o f f i r s t u s e r ( any
no . ) ” ) ; / / I n p u t : Taking s e c r e t key f o r u s e r 1
10 // I n p u t ex . a=3
11 b =[10]; // i n p u t ( ” E n t e r s e c r e t key o f s e c o n d u s e r ( any
no . ) ” ) ; / / I n p u t : Taking s e c r e t key f o r u s e r 2
12 // I n p u t ex . b=10
13 A = modulo ( g ^a , p ) ; // p u b l i c key o f u s e r 1
14 B = modulo ( g ^b , p ) ; // p u b l i c key o f u s e r 2
15 common_key = modulo ( A ^b , p ) ; // common key

10
16 printf ( ”Common Key i s %. d ” , common_key ) ; // Output :
Produ ced common key
17 // Output f o r ex . Common Key=12

11
Experiment: 5

Image Compression Using


Block Truncation Coding

check Appendix AP 1 for dependency:

lena.png

Scilab code Solution 5.5 block truncation in image

1
2 // C a p t i o n : Program p e r f o r m s B l o c k T r u n c a t i o n Coding (
BTC) by c h o o s i n g different
3 // b l o c k s i z e s o f 8
4 // S o f t w a r e v e r s i o n
5 //OS Windows7
6 // S c i l a b 5 . 4 . 1
7 // Image P r o c e s s i n g Design Toolbox 8.3.1 −1
8 // S c i l a b Image and Video P r o c c e s s i n g t o o l b o x
0.5.3.1 −2
9
10 close ;
11 clc ;

12
Figure 5.1: block truncation in image

12 x = imread ( ’ / home / a i k t c / D e s k t o p / l e n a . png ’ ) ; // SIVP


toolbox
13 // x=i m r e s i z e ( x , [ 2 5 6 2 5 6 ] ) ;
14 x1 = x ;
15 x = double ( x ) ;
16 [ m1 n1 ]= size ( x ) ;
17 blk = input ( ’ E n t e r t h e b l o c k s i z e : ’ ) ; // e n t e r a b l o c k
s i z e of 8 only
18 for i = 1 : blk : m1
19 for j = 1 : blk : n1
20 y = x ( i : i +( blk -1) ,j : j +( blk -1) ) ;
21 m = mean ( mean ( y ) ) ;
22 sig = std2 ( y ) ;
23 b = y > m ; // t h e b i n a r y b l o c k
24 K = sum ( sum ( b ) ) ;
25 if ( K ~= blk ^2 ) & ( K ~= 0)
26 ml = m - sig * sqrt ( K /(( blk ^2) -K ) ) ;
27 mu = m + sig * sqrt ((( blk ^2) -K ) / K ) ;
28 x ( i : i +( blk -1) , j : j +( blk -1) ) = b * mu
+(1 - b ) * ml ;

13
29 end
30 end
31 end
32 // imshow ( u i n t 8 ( x ) )
33 // t i t l e ( ’ R e c o n s t r u c t e d Image ’ )
34 x = uint8 ( x ) ;
35 figure (1)
36 imshow ( x1 )
37 title ( ’ O r i g i n a l Image ’ ) ; // IPD t o o l b o x
38 figure (2)
39 imshow ( x ) ; // IPD t o o l b o x
40 title ( ’ B l o c k S i z e = 8 ’ )

14
Appendix

15
LENA IMAGE

16

You might also like