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

Data Compression and Encryption

The document is a Scilab manual that provides code solutions for experiments on data compression and encryption techniques. It contains 9 sections that implement algorithms for Huffman coding, arithmetic coding, law encoding, one-dimensional and two-dimensional discrete cosine transform, Chinese Remainder Theorem, Caesar cipher, RSA encryption, and Diffie-Hellman key exchange. Each section provides the Scilab code to implement the given algorithm and explains it with figures and context.

Uploaded by

Sameer Arjun
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
31 views

Data Compression and Encryption

The document is a Scilab manual that provides code solutions for experiments on data compression and encryption techniques. It contains 9 sections that implement algorithms for Huffman coding, arithmetic coding, law encoding, one-dimensional and two-dimensional discrete cosine transform, Chinese Remainder Theorem, Caesar cipher, RSA encryption, and Diffie-Hellman key exchange. Each section provides the Scilab code to implement the given algorithm and explains it with figures and context.

Uploaded by

Sameer Arjun
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 33

Scilab Manual for

Data Compression and Encryption


by Dr Saylee Gharge
Others
VESIT1

Solutions provided by
Dr Saylee Gharge
Others
V.E.S.Institute of Technology

February 26, 2021

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 To implement Huffman coding. 5

2 To implement Arithmetic Coding. 12

3 To implement law encoding 16

4 To implement one dimension DCT 18

5 To implement two dimension DCT 21

6 To implement Chinese Remainder Theorem 23

7 To implement Ceaser Cipher Algorithm 26

8 To implement RSA Algorithm 28

9 To implement Diffie-Hellman Key exchange 31

2
List of Experiments

Solution 1.01 Huffman . . . . . . . . . . . . . . . . . . . . . . . 5


Solution 2.02 arithmetic . . . . . . . . . . . . . . . . . . . . . . 12
Solution 3.03 ULAW . . . . . . . . . . . . . . . . . . . . . . . . 16
Solution 4.04 1DDCT . . . . . . . . . . . . . . . . . . . . . . . 18
Solution 5.05 2DDCT . . . . . . . . . . . . . . . . . . . . . . . 21
Solution 6.06 CRT . . . . . . . . . . . . . . . . . . . . . . . . . 23
Solution 7.07 CCA . . . . . . . . . . . . . . . . . . . . . . . . . 26
Solution 8.08 RSA . . . . . . . . . . . . . . . . . . . . . . . . . 28
Solution 9.09 DIFFIE . . . . . . . . . . . . . . . . . . . . . . . 31

3
List of Figures

1.1 Huffman . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

2.1 arithmetic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

3.1 ULAW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.1 1DDCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

5.1 2DDCT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

6.1 CRT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

7.1 CCA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

8.1 RSA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

9.1 DIFFIE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

4
Experiment: 1

To implement Huffman coding.

Scilab code Solution 1.01 Huffman

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 printf ( ” E n t e r t h e f r e q u e n c y o f t h e 5 s y m b o l s i n
d e c r e a s i n g o r d e r ( i n t e g e r v a l u e s o n l y ) : ” ) ; // I n p u t
the frequency o f the symbols s e q u e n t i a l l y as
5 ,4 ,3 ,2 ,1 p r e s s i n g e n t e r a f t e r each frequency
6 s =[]; r =[];
7 for i =1:5
8 s ( i ) = input ( ” ” ) ;
9 end
10 r (4) = ’ 0 ’ ; r (5) = ’ 1 ’ ;
11 if ( s (4) + s (5) ) >= s (1) then
12 for i =1:3
13 temp ( i +1) = s ( i ) ;
14 end
15 temp (1) =( s (4) + s (5) ) ;
16 for i =1:4

5
Figure 1.1: Huffman

17 s ( i ) = temp ( i ) ;
18 end
19 r (2) = ’ 0 ’ ; r (3) = ’ 1 ’ ;
20 if ( s (3) + s (4) ) >= s (1) then
21 for i =1:2
22 temp ( i +1) = s ( i ) ;
23 end
24 temp (1) =( s (3) + s (4) ) ;
25 for i =1:3
26 s ( i ) = temp ( i ) ;
27 end
28 r (1) = ’ 1 ’ ; r (4) = ’ 00 ’ ; r (5) = ’ 01 ’ ;
29 if ( s (2) + s (3) ) >= s (1) then
30 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
31 r (1) = ’ 01 ’ ; r (2) = ’ 10 ’ ; r (3) = ’ 11 ’ ; r (4) = ’ 000 ’ ; r
(5) = ’ 001 ’ ;
32 else s (2) =( s (2) + s (3) ) ;
33 r (1) = ’ 11 ’ ; r (2) = ’ 00 ’ ; r (3) = ’ 01 ’ ; r (4) = ’ 100 ’ ; r
(5) = ’ 101 ’ ;
34 end

6
35
36 elseif ( s (3) + s (4) ) >= s (2) then
37 temp (2) = s (2) ; s (2) =( s (3) + s (4) ) ; s (3) = temp (2) ;
38 r (1) = ’ 1 ’ ; r (2) = ’ 00 ’ ; r (3) = ’ 01 ’ ;
39 if ( s (2) + s (3) ) >= s (1) then
40 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
41 r (1) = ’ 01 ’ ; r (2) = ’ 000 ’ ; r (3) = ’ 001 ’ ; r (4) = ’ 10 ’ ; r
(5) = ’ 11 ’ ;
42 else s (2) =( s (2) + s (3) ) ;
43 r (1) = ’ 11 ’ ; r (2) = ’ 100 ’ ; r (3) = ’ 101 ’ ; r (4) = ’ 00 ’ ; r
(5) = ’ 01 ’ ;
44 end
45 else s (3) =( s (3) + s (4) ) ;
46 r (1) = ’ 0 ’ ; r (2) = ’ 10 ’ ; r (3) = ’ 11 ’ ;
47 if ( s (2) + s (3) ) >= s (1) then
48 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
49 r (1) = ’ 00 ’ ; r (2) = ’ 010 ’ ; r (3) = ’ 011 ’ ; r (4) = ’ 10 ’ ; r
(5) = ’ 11 ’ ;
50 else s (2) =( s (2) + s (3) ) ;
51 r (1) = ’ 10 ’ ; r (2) = ’ 110 ’ ; r (3) = ’ 111 ’ ; r (4) = ’ 00 ’ ; r
(5) = ’ 01 ’ ;
52 end
53 end
54 elseif ( s (4) + s (5) ) >= s (2) then
55 for i =2:3
56 temp ( i +1) = s ( i ) ;
57 end
58 temp (2) =( s (4) + s (5) ) ;
59 for i =3:4
60 s ( i ) = temp ( i ) ;
61 end
62 r (2) = ’ 0 ’ ; r (3) = ’ 1 ’ ;
63 if ( s (3) + s (4) ) >= s (1) then
64 for i =1:2
65 temp ( i +1) = s ( i ) ;
66 end
67 temp (1) =( s (3) + s (4) ) ;
68 for i =1:3

7
69 s ( i ) = temp ( i ) ;
70 end
71 r (1) = ’ 0 ’ ; r (4) = ’ 10 ’ ; r (5) = ’ 11 ’ ;
72 if ( s (2) + s (3) ) >= s (1) then
73 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
74 r (1) = ’ 00 ’ ; r (2) = ’ 10 ’ ; r (3) = ’ 11 ’ ; r (4) = ’ 010 ’ ; r
(5) = ’ 011 ’ ;
75 else s (2) =( s (2) + s (3) ) ;
76 r (1) = ’ 10 ’ ; r (2) = ’ 00 ’ ; r (3) = ’ 01 ’ ; r (4) = ’ 110 ’ ; r
(5) = ’ 111 ’ ;
77 end
78
79 elseif ( s (3) + s (4) ) >= s (2) then
80 temp (2) = s (2) ; s (2) =( s (3) + s (4) ) ; s (3) = temp (2) ;
81 r (1) = ’ 1 ’ ; r (2) = ’ 00 ’ ; r (3) = ’ 01 ’ ;
82 if ( s (2) + s (3) ) >= s (1) then
83 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
84 r (1) = ’ 01 ’ ; r (2) = ’ 000 ’ ; r (3) = ’ 001 ’ ; r (4) = ’ 10 ’ ; r
(5) = ’ 11 ’ ;
85 else s (2) =( s (2) + s (3) ) ;
86 r (1) = ’ 11 ’ ; r (2) = ’ 100 ’ ; r (3) = ’ 101 ’ ; r (4) = ’ 00 ’ ; r
(5) = ’ 01 ’ ;
87 end
88 else s (3) =( s (3) + s (4) ) ;
89 r (2) = ’ 10 ’ ; r (3) = ’ 11 ’ ; r (4) = ’ 00 ’ ; r (5) = ’ 01 ’ ;
90 if ( s (2) + s (3) ) >= s (1) then
91 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
92 r (1) = ’ 1 ’ ; r (2) = ’ 010 ’ ; r (3) = ’ 011 ’ ; r (4) = ’ 000 ’ ; r
(5) = ’ 001 ’ ;
93 else s (2) =( s (2) + s (3) ) ;
94 r (1) = ’ 0 ’ ; r (2) = ’ 110 ’ ; r (3) = ’ 111 ’ ; r (4) = ’ 100 ’ ; r
(5) = ’ 101 ’ ;
95 end
96 end
97 elseif ( s (4) + s (5) ) >= s (3) then
98 temp (3) = s (3) ; s (3) =( s (4) + s (5) ) ; s (4) = temp (3) ;
99 r (4) = ’ 00 ’ ; r (5) = ’ 01 ’ ; r (3) = ’ 1 ’ ;
100 if ( s (3) + s (4) ) >= s (1) then

8
101 for i =1:2
102 temp ( i +1) = s ( i ) ;
103 end
104 temp (1) =( s (3) + s (4) ) ;
105 for i =1:3
106 s ( i ) = temp ( i ) ;
107 end
108 r (1) = ’ 0 ’ ; r (2) = ’ 1 ’ ;
109 if ( s (2) + s (3) ) >= s (1) then
110 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
111 r (1) = ’ 00 ’ ; r (2) = ’ 01 ’ ; r (3) = ’ 11 ’ ; r (4) = ’ 100 ’ ; r
(5) = ’ 101 ’ ;
112 else s (2) =( s (2) + s (3) ) ;
113 r (1) = ’ 10 ’ ; r (2) = ’ 11 ’ ; r (3) = ’ 01 ’ ; r (4) = ’ 000 ’ ; r
(5) = ’ 001 ’ ;
114 end
115
116 elseif ( s (3) + s (4) ) >= s (2) then
117 temp (2) = s (2) ; s (2) =( s (3) + s (4) ) ; s (3) = temp (2) ;
118 r (2) = ’ 1 ’ ; r (3) = ’ 01 ’ ; r (4) = ’ 000 ’ ; r (5) = ’ 001 ’ ;
119 if ( s (2) + s (3) ) >= s (1) then
120 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
121 r (1) = ’ 1 ’ ; r (2) = ’ 01 ’ ; r (3) = ’ 001 ’ ; r (4) = ’ 0 0 0 0 ’ ; r
(5) = ’ 0 0 0 1 ’ ;
122 else s (2) =( s (2) + s (3) ) ;
123 r (1) = ’ 0 ’ ; r (2) = ’ 11 ’ ; r (3) = ’ 101 ’ ; r (4) = ’ 1 0 0 0 ’ ; r
(5) = ’ 1 0 0 1 ’ ;
124 end
125 else s (3) =( s (3) + s (4) ) ;
126 r (2) = ’ 0 ’ ; r (3) = ’ 11 ’ ; r (4) = ’ 100 ’ ; r (5) = ’ 101 ’ ;
127 if ( s (2) + s (3) ) >= s (1) then
128 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
129 r (1) = ’ 1 ’ ; r (2) = ’ 00 ’ ; r (3) = ’ 011 ’ ; r (4) = ’ 0 1 0 0 ’ ; r
(5) = ’ 0 1 0 1 ’ ;
130 else s (2) =( s (2) + s (3) ) ;
131 r (1) = ’ 0 ’ ; r (2) = ’ 10 ’ ; r (3) = ’ 111 ’ ; r (4) = ’ 1 1 0 0 ’ ; r
(5) = ’ 1 1 0 1 ’ ;
132 end

9
133 end
134 else s (4) =( s (4) + s (5) ) ;
135 r (3) = ’ 0 ’ ; r (4) = ’ 10 ’ ; r (5) = ’ 11 ’ ;
136 if ( s (3) + s (4) ) >= s (1) then
137 for i =1:2
138 temp ( i +1) = s ( i ) ;
139 end
140 temp (1) =( s (3) + s (4) ) ;
141 for i =1:3
142 s ( i ) = temp ( i ) ;
143 end
144 r (1) = ’ 0 ’ ; r (2) = ’ 1 ’ ;
145 if ( s (2) + s (3) ) >= s (1) then
146 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
147 r (1) = ’ 00 ’ ; r (2) = ’ 01 ’ ; r (3) = ’ 10 ’ ; r (4) = ’ 110 ’ ; r
(5) = ’ 111 ’ ;
148 else s (2) =( s (2) + s (3) ) ;
149 r (1) = ’ 10 ’ ; r (2) = ’ 11 ’ ; r (3) = ’ 00 ’ ; r (4) = ’ 010 ’ ; r
(5) = ’ 011 ’ ;
150 end
151
152 elseif ( s (3) + s (4) ) >= s (2) then
153 temp (2) = s (2) ; s (2) =( s (3) + s (4) ) ; s (3) = temp (2) ;
154 r (2) = ’ 1 ’ ; r (3) = ’ 00 ’ ; r (4) = ’ 010 ’ ; r (5) = ’ 011 ’ ;
155 if ( s (2) + s (3) ) >= s (1) then
156 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
157 r (1) = ’ 1 ’ ; r (2) = ’ 01 ’ ; r (3) = ’ 000 ’ ; r (4) = ’ 0 0 1 0 ’ ; r
(5) = ’ 0 0 1 1 ’ ;
158 else s (2) =( s (2) + s (3) ) ;
159 r (1) = ’ 0 ’ ; r (2) = ’ 11 ’ ; r (3) = ’ 100 ’ ; r (4) = ’ 1 0 1 0 ’ ; r
(5) = ’ 1 0 1 1 ’ ;
160 end
161 else s (3) =( s (3) + s (4) ) ;
162 r (2) = ’ 0 ’ ; r (3) = ’ 10 ’ ; r (4) = ’ 110 ’ ; r (5) = ’ 111 ’ ;
163 if ( s (2) + s (3) ) >= s (1) then
164 temp (1) = s (1) ; s (1) =( s (2) + s (3) ) ; s (2) = temp (1) ;
165 r (1) = ’ 1 ’ ; r (2) = ’ 00 ’ ; r (3) = ’ 010 ’ ; r (4) = ’ 0 1 1 0 ’ ; r
(5) = ’ 0 1 1 1 ’ ;

10
166 else s (2) =( s (2) + s (3) ) ;
167 r (1) = ’ 0 ’ ; r (2) = ’ 10 ’ ; r (3) = ’ 110 ’ ; r (4) = ’ 1 1 1 0 ’ ; r
(5) = ’ 1 1 1 1 ’ ;
168 end
169 end
170 end
171 printf ( ” The c o d e w o r d s f o r s y m b o l s a r e \n ” )
172 for i =1:5
173 disp ( r ( i ) ) ;
174 end
175 // Output f o r ex :
176 // The c o d e w o r d s f o r s y m b o l s a r e :
177 // 00
178 // 01
179 // 11
180 // 100
181 // 101

11
Experiment: 2

To implement Arithmetic
Coding.

Scilab code Solution 2.02 arithmetic

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 n = input ( ” E n t e r t h e no . o f s y m b o l s : ” ) ; // I n p u t :
Taking t h e no . o f s y m b o l s ( ex 5 )
6 // Note : The sum o f p r o b a b i l i t i e s o f a l l s y m b o l s must
be one ( 1 )
7 for i = 1: n
8 printf ( ” \ n E n t e r t h e p r o b a b i l i t y (<=1) o f symbol
%d : ” ,i ) ; // I n p u t : Taking t h e p r o b a b i l i t y o f
occurence
9 p ( i ) = input ( ” ” ) ;
10 end
11 // Sample I n p u t f o r p r o b a b i l i t y o f s y m b o l s
12 // Symbol Probability
13 // 1 0.3

12
Figure 2.1: arithmetic

14 // 2 0.25
15 // 3 0.25
16 // 4 0.1
17 // 5 0.1
18 printf ( ” \ nThe c d f o f symbol 1 : %. 3 f ” ,p (1) ) ;
19 // Output CDF f o r e x a m p l e i n p u t
20 // Symbol CDF
21 // 1 0.3
22 // 2 0.550
23 // 3 0.800
24 // 4 0.900
25 // 5 1.000
26
27 c (1) = p (1) ;
28 for i = 2: n
29 c ( i ) = p ( i ) + c (i -1) ;
30 printf ( ” \ nThe c d f o f symbol %d : ” ,i ) ;
31 printf ( ”%. 3 f ” ,c ( i ) ) ;
32 end
33 s = input ( ” E n t e r t h e no . o f s y m b o l s i n s e q u e n c e ” ) ; //

13
I n p u t : No . o f s y m b o l s ( f o r ex i f t h e s e q u e n c e t o
be c o d e d i s : 1 2 3 2 1 where 1 , 2 , 3 . . . a r e symbol
numbers t h e n no . o f s y m b o l s a r e 5 )
34 // ex No . o f s y m b o l s i n s e q u e n c e =5
35 printf ( ” E n t e r t h e s e q u e n c e ” ) ; // I n p u t : S e q u e n c e ( For
example to e n t e r the s e q u e n c e 1 2 3 2 1 , p r e s s
e a c h symbol and t h e n e n t e r . So f o r o u r c a s e ,
p r e s s 1 and t h e n e n t e r t h e n s i m i l a r l y 2 t h e n
e n t e r and s o on )
36 // I n p u t ex S e q u e n c e : 1 ( p r e s s E n t e r )
37 // 2 ( p r e s s Enter )
38 // 3 ( p r e s s Enter )
39 // 2 ( p r e s s Enter )
40 // 1 ( p r e s s Enter )
41 for j = 1: s
42 b ( j ) = input ( ” ” ) ; // I n s e r t i n g t h e s e q u e n c e
43 end
44 // S e t t i n g t h e l o w e r and u p p e r l i m i t f o r 1 s t s t a g e
45 if b (1) == 1 then
46 l (1) =0;
47 u (1) = c ( b (1) ) ;
48 else
49 l (1) = c ( b (1) -1) ;
50 u (1) = c ( b (1) ) ;
51 end
52 // C a l c u l a t i n g l o w e r and u p p e r l i m i t s f o r 2 nd s t a g e
and ahead
53 for k = 2: s
54 if b ( k ) == 1 then
55 l ( k ) = l (k -1) ;
56 u ( k ) = l (k -1) +(( u (k -1) -l (k -1) ) * c ( b ( k ) ) ) ;
57 else
58 l ( k ) = l (k -1) +(( u (k -1) -l (k -1) ) * c ( b ( k ) -1) ) ;
59 u ( k ) = l (k -1) +(( u (k -1) -l (k -1) ) * c ( b ( k ) ) ) ;
60 end
61 end
62
63 tag =( l ( s ) + u ( s ) ) /2; // G e n e r a t i n g t a g

14
64 printf ( ” The t a g o f t h e s e q u e n c e i s = %. 1 0 f ” , tag ) ; //
Output : The t a g o f t h e s e q u e n c e
65 // Output f o r ex t a g = 0 . 1 3 7 5 7 8 1 2 5 0

15
Experiment: 3

To implement law encoding

Scilab code Solution 3.03 ULAW

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 n = input ( ” E n t e r t h e i n p u t s a m p l e ( no . t o be c o d e d ) : ”
) ; // I n p u t : Taking I n p u t Sample from u s e r
6 // I n p u t ex . n=−656
7 if n <0 then
8 P =49; // a s c i i c o d e f o r 1=49
9 else
10 P =48; // a s c i i c o d e f o r 0=48
11 end
12 Pc = asciimat ( P ) ; // S i g n B i t
13 printf ( ” The e n c o d e d word i s : ” ) ; // Output : The
e n c o d e d word
14 printf ( ”%c” , Pc ) ;
15 s1 = abs ( n ) +33;
16 s1b = dec2bin ( s1 ) ;
17 l = length ( s1b ) ;
18 s1bl = length ( s1b ) -1;
19 s1bls = s1bl -5;

16
Figure 3.1: ULAW

20 segcod = dec2bin ( s1bls ,3) ; // s e g m e n t c o d e


21 printf ( ”%s” , dec2bin ( s1bls ,3) ) ;
22 qrev = part ( s1b ,1:4) ;
23 q = strrev ( qrev ) ; // q u a n t i z a t i o n c o d e
24 printf ( ”%s” ,q ) ;
25 // Output f o r ex . 1 1 0 0 0 1 0 1

17
Experiment: 4

To implement one dimension


DCT

Scilab code Solution 4.04 1DDCT

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 // one d i m e n s i o n a l c o s i n e t r a n s f o r m
4 clc ;
5 clear all ;
6 f =[1 2 4 7]; // I n p u t : A row m a t r i x
7 // I n p u t ex . f =[1 2 4 7 ]
8 N = length ( f ) ; // f i n d i n g l e n g t h o f i n p u t s e q u e n c e
9 F = zeros (1 , N ) ; // c o s i n e t r a n s f o r m o f i n p u t
10 //C=z e r o s (N, N) ;
11 for k =1: N
12 for n =1: N
13 if (k -1) ==0
14 C (k , n ) = inv ( sqrt ( N ) ) ; // c o s i n e t r a n s f o r m
matrix
15 else
16 C (k , n ) = sqrt (2) * inv ( sqrt ( N ) ) * cos ( %pi *(2*( n
-1) +1) *( k -1) /(2* N ) ) ;
17 end

18
18 end
19 end
20
21 for u =1: N
22 for x =1: N
23 if (u -1) ==0
24 F ( u ) = F ( u ) + inv ( sqrt ( N ) ) * f ( x ) * cos ( %pi *(2*( x
-1) +1) *( u -1) /(2* N ) ) ;
25 else
26 F ( u ) = F ( u ) + sqrt (2) * inv ( sqrt ( N ) ) * f ( x ) * cos (
%pi *(2*( x -1) +1) *( u -1) /(2* N ) ) ;
27 end
28 end
29 end
30
31 disp (F , ” i s ” ,f , ” D i s c r e t e C o s i n e T r a n s f o r m o f ” ) ; //
Output : The d i s c r e t e c o s i n e t r a n s f o r m o f 1D
sequence
32 // Output f o r ex . : [ 7 −4.460885 1 − 0 . 3 1 7 0 2 5 3 ]

19
Figure 4.1: 1DDCT

20
Experiment: 5

To implement two dimension


DCT

Scilab code Solution 5.05 2DDCT

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 // two d i m e n s i o n a l c o s i n e t r a n s f o r m
4 clc ;
5 clear all ;
6 f =[2 4 4 2;4 6 8 3;2 8 10 4;3 8 6 2]; // I n p u t : E n t e r
a square matrix
7 // I n p u t ex . f =[2 4 4 2 ; 4 6 8 3 ; 2 8 10 4 ; 3 8 6 2 ]
8 [ M N ]= size ( f ) ; // f i n d i n g l e n g t h o f i n p u t s e q u e n c e
9 for k =1: N
10 for n =1: N
11 if (k -1) ==0
12 C (k , n ) = inv ( sqrt ( N ) ) ; // c o s i n e t r a n s f o r m
matrix
13 else
14 C (k , n ) = sqrt (2) * inv ( sqrt ( N ) ) * cos ( %pi *(2*( n
-1) +1) *( k -1) /(2* N ) ) ;
15 end
16 end

21
Figure 5.1: 2DDCT

17 end
18
19 F = C * f *C ’; // d i s c r e t e cosine transform of input for
non−s y m m e t r i c DCT
20 disp (F , ” i s ” ,f , ”Two d i m e n s i o n a l c o s i n e t r a n s f o r m o f ” )
; // Output : Two d i m e n s i o n a l c o s i n e t r a n s f o r m o f
the matrix
21 // Output f o r ex . :
22 // 19. − 0.2705981 − 8.
0.6532815
23 // − 2 . 6 9 2 3 8 2 3 − 0 . 2 5 2.3096988
0.8964466
24 // − 3 . 5 1.4650756 1.5 −
1.6892464
25 // 0.0328290 − 1.6035534 − 0.9567086 − 0.25

22
Experiment: 6

To implement Chinese
Remainder Theorem

Scilab code Solution 6.06 CRT

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 // S t a n d a r d E q u a t i o n s f o r CRT
6 // x=a1 mod m1
7 // x=a2 mod m2
8 // x=a3 mod m3
9 // Taking t h e p a r a m e t e r s o f s t a n d a r d e q u a t i o n from
the user
10 m1 =[3]; // i n p u t ( ” E n t e r t h e v a l u e m1 : ” ) ; / / I n p u t :
V a l u e o f m1 from e q u a t i o n s
11 // I n p u t ex . m1=3
12 m2 =[4]; // i n p u t ( ” E n t e r t h e v a l u e m2 : ” ) ; / / I n p u t :
V a l u e o f m2 from e q u a t i o n s
13 // I n p u t ex . m2=4
14 m3 =[5]; // ( ” E n t e r t h e v a l u e m3 : ” ) ; / / I n p u t : V a l u e o f

23
Figure 6.1: CRT

m3 from e q u a t i o n s
15 // I n p u t ex . m3=5
16 a1 =[2]; // i n p u t ( ” E n t e r t h e v a l u e a1 : ” ) ; / / I n p u t :
V a l u e o f a1 from e q u a t i o n s
17 // I n p u t ex . a1=2
18 a2 =[2]; // i n p u t ( ” E n t e r t h e v a l u e a2 : ” ) ; / / I n p u t :
V a l u e o f a2 from e q u a t i o n s
19 // I n p u t ex . a2=2
20 a3 =[1]; // ( ” E n t e r t h e v a l u e a3 : ” ) ; / / I n p u t : V a l u e o f
a3 from e q u a t i o n s
21 // I n p u t ex . a3=1
22 M = m1 * m2 * m3 ;
23 M1 = M / m1 ;
24 M2 = M / m2 ;
25 M3 = M / m3 ;
26
27 for i = 1:10
28 if modulo ((( M1 * i ) -1) , m1 ) == 0 then
// C a l c u l a t i n g
M1inverse

24
29 M1in = i ;
30 break ;
31 end
32 end
33 for i = 1:10
34 if modulo ((( M2 * i ) -1) , m2 ) == 0 then
... ..... ..... ..... ..... ..... ..... .... //
C a l c u l a t i n g M2inverse
35 M2in = i ;
36 break ;
37 end
38 end
39 for i = 1:10
40 if modulo ((( M3 * i ) -1) , m3 ) == 0 then
... ..... ..... ..... ..... ..... ..... .... //
C a l c u l a t i n g M3inverse
41 M3in = i ;
42 break ;
43 end
44 end
45 x = modulo ((( a1 * M1 * M1in ) +( a2 * M2 * M2in ) +( a3 * M3 * M3in ) ) ,M )
; // S o l u t i o n o f e q u a t i o n s
46 printf ( ” \ nThe s o l u t i o n i s x=%d” ,x ) ; // Output : The
s o l u t i o n f o r the s e t of equations
47 // Output f o r ex . x=26

25
Experiment: 7

To implement Ceaser Cipher


Algorithm

Scilab code Solution 7.07 CCA

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 n = input ( ” E n t e r t h e l e n g t h o f t h e t e x t : ” ) ; // I n p u t :
Taking t h e l e n g t h o f t h e t e x t t o be e n c o d e d from
t h e u s e r ( f o r ex t o e n c o d e a b c d e t h e l e n g t h i s 5 )
6 // I n p u t ex n=5
7 t = tokens ( input ( ” P l e a s e t y p e s t r i n g wih a s p a c e i n
b e t w e e n a l p h a b e t s : ” ,” s t r i n g ” ) ) ; // I n p u t : Taking
t h e s t r i n g t o be e n c o d e d
8 // Inpu ex . t=a b c d e
9 printf ( ” The e n c r y p t e d s t r i n g i s : ” ) ; // Output : The
encrypted s t r i n g
10 for i = 1: n
11 c ( i ) = ascii ( t ( i ) ) +3; // C a e s e r C i p h e r e n c o d i n g w i t h
o f f s e t =3

26
Figure 7.1: CCA

12 c1 ( i ) = asciimat ( c ( i ) ) ;
13 printf ( ”%. c ” , c1 ( i ) ) ; // P r i n t i n g t h e e n c o d e d word
14 end
15 // Output f o r ex . d e f g h

27
Experiment: 8

To implement RSA Algorithm

Scilab code Solution 8.08 RSA

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 ” ) ; // I n p u t : v a l u e 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 a r e
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 ( ” ” ) ;
14 for i = 1: n
15 z = modulo (( i * e ) , phi ) ;

28
Figure 8.1: RSA

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
: P r i n t i n g the encrypted message
31 // Output f o r ex . 25

29
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

30
Experiment: 9

To implement Diffie-Hellman
Key exchange

Scilab code Solution 9.09 DIFFIE

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

31
Figure 9.1: DIFFIE

16 printf ( ”Common Key i s %. d ” , common_key ) ; // Output :


Produ ced common key
17 // Output f o r ex . Common Key=12

32

You might also like