Sie sind auf Seite 1von 43

1. INTRODUCTION 1.1 INTRODUCTION The rapid growth of Internet and digitized content has made video distribution easy.

Hence the need for video data protection is on the rise. Therefore, multimedia encryption is needed for the complete confidentiality. Classic encryption algorithms like DES (Data Encryption Standard), AES (Advanced Encryption Standard) etc., are computationally infeasible for video data. They take large amount of time for encrypting huge video data. To decrease the encryption time, some encryption algorithms used simple scrambling mechanisms. Evidently they are insecure. Moreover, these algorithms typically neglected the data format of the videos, thus burdening compression phase of codec. Owing to the large size and real-time applications of video, two types of encryption algorithms are generally in vogue. One method is selective encryption. In this method, only parts of the video content are encrypted, thereby reducing the computational requirement (time). This method is not suitable because the full content of the video is not critical. Another method is the light-weight encryption which trades off security for computational time.

1.2 OBJECTIVE The objective is to propose a secure and computationally feasible video encryption algorithm based on the method of Secret Sharing. In an MPEG video, the strength of the DC is distributed among the AC values based on Shamirs Secret Sharing (SSS) scheme. The proposed algorithm guarantees security, speed and error tolerance with a small increase in video size. There is a need for a new secure video encryption algorithm perhaps designed by combining these two classes, which retains their respective advantages, while minimizing the disadvantages. Apparently a naive combination is worse compared to each one of them individually if one wants to reduce the time, then one may opt for selective light-weight encryption, which degrades the security. If one attempts to improve security by the Shannons principle of selective permute-then-encrypt, it increases the computational time.

2. SYSTEM ANALYSIS

2.1 EXISTING SYSTEM In the existing system, the selective encryption algorithm typically uses heavy-weight encryption algorithms (eg. DES, AES etc.). Consequently, time taken for the encryption using them is high making them unsuitable for real-time applications. On the other hand, most of the known light-weight algorithms are susceptible to known plaintext-only and ciphertext-only attacks. Therefore, there is a need for a new secure video encryption algorithm perhaps designed by combining these two classes, which retains their respective advantages, while minimizing the disadvantages. Apparently a naive combination is worse compared to each one of them individually if one wants to reduce the time, then one may opt for selective light-weight encryption, which degrades the security. If one attempts to improve security by the Shannons principle of selective permute-then-encrypt, it increases the computational time.

2.1.1 LIMITATIONS

The existing video encryption techniques are not feasible. The security is very low. Cannot overcome the secret sharing attacks

2.2 PROPOSED SYSTEM In the proposed system, we propose a selective cum light-weight encryption algorithm which is fast enough for real-time applications, yet possessing practically acceptable levels of security. Discrete Cosine Tranform (DCT) is popularly used to compress images and videos. It decomposes an image signal into multiple frequency components. A key ingredient of our solution is a suitably adapted and randomized version of Shamirs Secret Sharing scheme. Furthermore, our algorithm, unlike most of the video encryption algorithms, has an inbuilt error-tolerance, which could be handy in many practical applications.

2.2.1 ADVANTAGES Provides a low cost solution to Encryption and provides good quality video encoding. Provides overall high security, size preservation, and relatively fast encryption.

3. SYSTEM SPECIFICATION

3.1 HARDWARE REQUIREMENTS

Processor Speed RAM capacity Hard disk drive Motherboard

: : : : :

Pentium IV Above 500 MHz 1 GB 80 GB Intel

3.2 SOFTWARE REQUIREMENTS Operating System Technology : : Windows XP and above MATLAB

4. SOFTWARE DESCRIPTION

4.1 MATLAB MATLAB is a high-level technical computing language and interactive environment for algorithm development, data visualization, data analysis, and numeric computation. Using the MATLAB product, one can solve technical computing problems faster than with traditional programming languages, such as C, C++, and Fortran. One can use MATLAB in a wide range of applications, including signal and image processing, communications, control design, test and measurement, financial modeling and analysis, and computational biology. Add-on toolboxes extend the MATLAB environment to solve particular classes of problems in these application areas. MATLAB provides a number of features for documenting and sharing the work. One can integrate the MATLAB code with other languages and applications, and distribute the MATLAB algorithms and applications.

4.2 KEY FEATURES


High-level language for technical computing Development environment for managing code, files, and data Interactive tools for iterative exploration, design, and problem solving Mathematical functions for linear algebra, statistics, Fourier analysis, filtering, optimization, and numerical integration

2-D and 3-D graphics functions for visualizing data Tools for building custom graphical user interfaces Functions for integrating MATLAB based algorithms with external applications and languages, such as C, C++, Fortran, Java, COM, and Microsoft Excel

Image Processing Toolbox 6.3 Performs image processing, analysis, and algorithm development Image Processing Toolbox software provides a comprehensive set of reference-standard algorithms and graphical tools for image processing, analysis, visualization, and algorithm development. One can restore noisy or degraded images, enhance images for improved intelligibility, extract features, analyze shapes and textures, and register two images. Most toolbox functions are written in the open MATLAB language, giving one the ability to inspect the algorithms, modify the source code, and create own custom functions. Introduction Image Processing Toolbox supports engineers and scientists in areas such as biometrics, remote sensing, surveillance, gene expression, microscopy, semiconductor testing, image sensor

design, color science, and materials science. It also facilitates the learning and teaching of image processing techniques. Key Features

Image enhancement, including filtering, filter design, deblurring, and contrast enhancement Image analysis, including feature detection, morphology, segmentation, and measurement Spatial transformations and image registration Image transforms, including FFT, DCT, Radon, and fan-beam projection Support for multidimensional image processing Support for ICC version 4 color management system Modular interactive tools, including ROI selections, histograms, and distance measurements Interactive image and video display DICOM import and export

5. PROJECT DESCRIPTION

5.1 PROBLEM DEFINITION

The rapid growth of Internet and digitized content has made video distribution easy. Hence the need for video data protection is on the rise. A secure and computationally feasible video encryption algorithm based on the method of Secret Sharing is proposed for use. In an MPEG video, the strength of the DC is distributed among the AC values based on Shamirs Secret Sharing (SSS) scheme. The proposed algorithm guarantees security, speed and error tolerance with a small increase in video size.

5.2 OVERVIEW OF THE PROJECT The overview of the project is to propose a secure and computationally feasible video encryption algorithm based on the method of Secret Sharing. In an MPEG video, the strength of the DC is distributed among the AC values based on Shamirs Secret Sharing (SSS) scheme. The proposed algorithm guarantees security, speed and error tolerance with a small increase in video size. There is a need for a new secure video encryption algorithm perhaps designed by combining these two classes, which retains their respective advantages, while minimizing the disadvantages. We propose a selective cum light-weight encryption algorithm which is fast enough for real-time applications, yet possessing practically acceptable levels of security. Discrete Cosine Tranform (DCT) is popularly used to compress images and videos. It decomposes an image signal into

multiple frequency components. A key ingredient of our solution is a suitably adapted and randomized version of Shamirs Secret Sharing scheme.

5.3 MODULE DESCRIPTION The project has the following module implementations 1. Implementation of Discrete Cosine Transform (DCT) to compress the Video 2. Encryption and Secret Sharing by Shamirs secret sharing scheme 3. Decryption Process 4. Compute Error Tolerance 5. Performance Evaluation

5.3.1 MODULES 1. Implementation of Discrete Cosine Transform (DCT) to compress the Video In this module, we implement the Discrete Cosine Transform (DCT) to compress images and videos. It decomposes an image signal into multiple frequency components. The transform coefficients can be classified into two groups namely, DC and AC coefficients. The DC coefficient is the mean value of the image block and carries most of the energy in the image block. The AC coefficients (ACs) carry energy depending on the amount of detail in the image block. In practice, most of the energy is compacted in the DC coefficient and a few AC coefficients. 2. Encryption and Secret Sharing by Shamirs secret sharing scheme In this module, Shamirs (k, n) secret sharing scheme is used, where n = k + 1. The value of k varies from 4 to 12 depending on the number of ACs in that block. Though the DC can be shared among all the ACs available, it has the drawback of increase in video size as well as the decryption

10

time at the receiver. This algorithm is a selective and light-weight encryption algorithm. It takes the DC component of each DCT block. Depending on the number of ACs in that block it distributes the DC among the ACs and itself, based on the method of secret sharing. 3. Decryption Process In this module, during decryption at the receiver end, the authorized user first has to generate a set of random numbers using the key (seed) as the input to PRNG and then proceed with constructing k equations from n values. Then use LaGranges interpolation to get back the DC and AC coefficients of each block. Even if receiver loses nk values (only one value in the current setting), he can retrieve all the DCT coefficients correctly. An unauthorized user cannot get back the secret because of the property that any k 1 shares doesnt reveal anything about the secret. 3. Compute Error Tolerance In this module, the Secret Sharing is the key factor that helps in providing error tolerance. In the proposed algorithm, k values are distributed among k + 1 values. So, loss or change of one value can be tolerated. This feature of the algorithm comes with extra computational overhead which is also tolerable. If a value is lost, rest of the k values can be used to get back the original coefficients according to secret sharing. If a value is modified, the original values can be obtained by trial-and-error in at most k 1 iterations. Hence error-tolerance is achieved. 4. Performance Analysis In this module, the proposed algorithm is evaluated for the following: Security of the proposed encryption technique and The process of achieving error tolerance.

11

5.4 DATA FLOW DIAGRAM

LEVEL 0

User

A novel video encryption technique based on secret sharing

User

Figure 1. DFD level 0

12

LEVEL 1 Video

User

Compress the video by DCT Encryption and Secret Sharing by Shamirs secret sharing scheme

Decryption Compute Error Tolerance

User

Figure 2. DFD level 1

13

5.5 INPUT DESIGN Input design is the part of overall system design which requires very careful attention. Often the collection of input data is the most expensive part of the system, in terms of both the equipment used and the number of people involved; it is the point of most contact for the users with the computer system; and it is prone to error. If data going into the system are incorrect, then the processing and output will magnify these errors.

Input design is the very important part in the project and should be concentrated well as it is prone to error. The data that are to be inserted are to be inserted with care as this plays a very important role. In order to get the meaningful output and to achieve good accuracy the input should be acceptable and understandable by the user. There are various approaches for entering data through terminals. This project is implemented as a MATLAB application. The essential things that are considered during input design are: The content of the input records: Data items from the inputs will be used to produce the output. Design of the source document: Source data is usually recorded in order to standardize the format of input data. Properly designed source documents also aid accuracy and checking procedures. User interface design: User input is usually through keyboard and mouse. Volume and frequency of input: This will dictate the method of input. Usually small volumes of data are input using VDU and thus here too it is input using VDU, validated and processed immediately.

14

5.6 OUTPUT DESIGN Output design plays a very important role in a system. Getting a correct output is a task that has to be concentrated, as a system is validated as a correct one only if it gives the correct output according to the input. Computer output is the most important and direct source of information to the user. Efficient and intelligent output design should improve the systems relationship with the user and helps in decision making. The output devices depend on factors such as compatibility of the device with the system, response time, requirements and so on.

15

6. SYSTEM TESTING

6.1 UNIT TESTING Unit testing is the testing of individual hardware or software units or groups of related unit. Using white box testing techniques, testers verify that the code does what it is intended to do at a very low structural level. For example, the tester will write some test code that will call a method with certain parameters and will ensure that the return value of this method is as expected. Looking at the code itself, the tester might notice that there is a branch (an if-then) and might write a second test case to go down the path not executed by the first test case. When available, the tester will examine the low-level design of the code; otherwise, the tester will examine the structure of the code by looking at the code itself. Unit testing is generally done within a class or a component.

6.2 ACCEPTANCE TESTING After functional and system testing, the product is delivered to a customer and the customer runs black box acceptance tests based on their expectations of the functionality. Acceptance testing is formal testing conducted to determine whether or not a system satisfies its acceptance criteria (the criteria the system must satisfy to be accepted by a customer) and to enable the customer to determine whether or not to accept the system. These tests are often pre-specified by the customer and given to the test team to run before attempting to deliver the product. The customer reserves the right to refuse delivery of the software if the acceptance test cases do not pass. However, customers are not trained software testers. Customers generally do not specify a complete set of acceptance test cases. Their test cases are no substitute for creating our own set of functional/system test cases. The customer is probably very good at specifying at most one good

16

test case for each requirement. Whenever possible, we should run customer acceptance test cases ourselves so that we can increase our confidence that they will work at the customer location.

PROGRAM TESTING A program represents the logical elements of a system. For a program to run

satisfactorily, it must compile and test data correctly and tie in properly with other programs. Achieving an error free program is the responsibility of the programmer. Program testing checks for two types of errors: syntax and logical. Syntax error is a program statement that violates one or more rules of the language in which it is written. An improperly defined field dimension or omitted keywords are common syntax errors. These errors are shown through error message generated by the computer. For Logic errors the programmer must examine the output carefully.

When a program is tested, the actual output is compared with the expected output. When there is a discrepancy the sequence of instructions must be traced to determine the problem. The process is facilitated by breaking the program into self-contained portions, each of which can be checked at certain key points .The idea is to compare program

values against desk-calculated values to isolate the problems.

FUNCTIONAL TESTING Functional testing of an application is used to prove the application delivers correct results, using enough inputs to give an adequate level of confidence that will work correctly for all sets of

17

inputs. The functional testing will need to prove that the application works for each client type and that personalization function work correctly.

Test case no 1

Description Test for all modules

Expected result All module communicate in

should the

application. Test for every functions in a framework The result after execution as it display all results. should give the accurate result.

NON-FUNCTIONAL TESTING This testing is used to check that an application will work in the operational environment. Non-functional testing includes: Load testing Performance testing Usability testing Reliability testing

LOAD TESTING Test case no 1 Description Expected result It is necessary to ascertain that the Should display application behaves correctly under message for error particular

loads of all the components. PERFORMANCE TESTING

components.

18

Test case no 1

Description Expected result This is required to assure that an Should handle large input application perforce adequately, having values, the capability to handle many peers, accurate and result produce in a

delivering its results in expected time expected time and using an acceptable level of resource and it is an aspect of operational management.

RELIABILITY TESTING

Test case no 1

Description Expected result This is to check that the system is rugged In case of failure of

the

and reliable and can handle the failure of system an error handling any of the components involved in function should take over provide the application. the process

7. SYSTEM IMPLEMENTATION

System implementation is the important stage of project when the theoretical design is tuned into practical system. The main stages in the implementation are as follows:

19

Planning System testing and Changeover Planning

Planning is the first task in the system implementation. Planning means deciding on the method and the time scale to be adopted. At the time of implementation of any system people from different departments and system analysis involve. They are confirmed to practical problem of controlling various activities of people outside their own data processing departments. The line managers are controlled through an implementation coordinating committee. considers ideas, problems and complaints of user department, it must also consider: The implication of system environment; Self selection and allocation for implementation tasks; Consultation with unions and resources available; Standby facilities and channels of communication The committee

RESULTS Since the Office Management is a system, which is to be accessed, only by the company management alone only one user should design it, in such a way that it should not be flexible

20

enough to access at a time. Hence the implementation method used in the system is a pilot type of implementation.

IMPLEMENTATION PROCEDURES The implementation plan consists of the methods for changing from the old system to new one. There are several methods available for handling the implementation and consequent conversion from old to the new computerization system. The most secure method for converting from the old to the new system is to run both old and new systems in parallel. In this approach personal may operate in the manual order processing system in the accustomed manner as well as start operating the new computerization system. This method offers high security, because even if there is a flaw in the computerization system we can depend on the manual system. However, the cost for maintaining two systems in parallel is very high. Another commonly used method is a direct cutter from the existing system to the proposed system. The change may be within a week or within a day. There are no parallel activities. However, there is no remedy in case of a problem. This strategy requires careful planning. We can also implement a working version of the system in one part of the organization and the personal will be piloting the system and changes can be made as and when required. But this method is less preferable due to the loss of entire system.

OPERATIONAL DOCUMENTATION An Operational Manual is used as a permanent reference document to inform the computer operations department to implement the work to be done in routine operation and any special

21

features. The manual is the formal communication of system details to the operations department, but is not the only communication needed. It is essential that provisional details be supplied to the operations department as soon as they are available to give opportunity for preparation of preliminary schedules and forward loading plans and for training and familiarization. The contents should be clear and practical. As it may be necessary for the manual to be partitioned to the requirements, its structure should be determined in consultation with the operations developer.

IMPLEMENTATION STEP The Discrete Cosine Transform (DCT) is implemented to compress images and videos. It decomposes an image signal into multiple frequency components. The transform coefficients can be classified into two groups namely, DC and AC coefficients. The DC coefficient is the mean value of the image block and carries most of the energy in the image block. The AC coefficients (ACs) carry energy depending on the amount of detail in the image block. In practice, most of the energy is compacted in the DC coefficient and a few AC coefficients. Shamirs (k, n) secret sharing scheme is used, where n = k + 1. The value of k varies from 4 to 12 depending on the number of ACs in that block. Though the DC is shared among all the ACs available, it has the drawback of increase in video size as well as the decryption time at the receiver. This algorithm is a selective and light-weight encryption algorithm. It takes the DC component of each DCT block. Depending on the number of ACs in that block distributes the DC among the ACs and itself, based on the method of secret sharing.

22

During decryption at the receiver end, the authorized user first has to generate a set of random numbers using the key (seed) as the input to PRNG and then proceed with constructing k equations from n values then use Legranges interpolation to get back the DC and AC coefficients of each block. Even if receiver loses nk values (only one value in the current setting), he can retrieve all the DCT coefficients correctly. An unauthorized user cannot get back the secret because of the property that any k 1 shares doesnt reveal anything about the secret.

The Secret Sharing is the key factor that helps in providing error tolerance. In the proposed algorithm, k values are distributed among k + 1 values. So, loss or change of one value can be tolerated. This feature of the algorithm comes with extra computational overhead which is also tolerable. If a value is lost, rest of the k values can be used to get back the original coefficients according to secret sharing. If a value is modified, the original values can be obtained by trial-and-error in at most k 1 iterations. Hence error-tolerance is achieved.

8. CONCLUSION

8.1 CONCLUSION

23

In this project, a novel selective and light-weight encryption algorithm for the security of video data is proposed based on the method of sharing the DC coefficients among the ACs and DC. Security analysis and experimental results show that the proposed encryption scheme is fast, provides good security with error tolerance and adds very less overhead on the compression of the video which most of the real-time video applications require. The Discrete Cosine Transform (DCT) is implemented to compress images and videos. Then Shamirs (k, n) secret sharing scheme is used, where n = k + 1. The value of k varies from 4 to 12 depending on the number of ACs in that block. The proposed algorithm increases the video size by 30.23% which is less when compared to XOR and scramble algorithms. Though the DC is shared among all the ACs available, it has the drawback of increase in video size as well as the decryption time at the receiver.

8.2 FUTURE ENHANCEMENT

The future scope is to extend this system to adapt the algorithm for different resolution videos, different video formats and highly sensitive videos where every part of the video is important. Furthermore the encryption time can be reduced so that it can be used to support large video applications.

9. APPENDIX-1 9.1 Source code Encrypt.m:

24

function varargout = final(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename, ... 'gui_Singleton', gui_Singleton, ... 'gui_OpeningFcn', @final_OpeningFcn, ... 'gui_OutputFcn', @final_OutputFcn, ... 'gui_LayoutFcn', [] , ... 'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end if nargout [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:}); else gui_mainfcn(gui_State, varargin{:}); end function final_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject; guidata(hObject, handles); function varargout = final_OutputFcn(hObject, eventdata, handles) varargout{1} = handles.output; function popupmenu1_Callback(hObject, eventdata, handles) function popupmenu1_CreateFcn(hObject, eventdata, handles) if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor')) set(hObject,'BackgroundColor','white'); end function pushbutton1_Callback(hObject, eventdata, handles) clc; warning off all; if(isdir('frames')) rmdir('frames','s'); end mkdir('frames'); switch get(handles.popupmenu1,'Value') case 1 case 2 im='Input\human.avi'; case 3 im='Input\viptraffic.avi'; case 4 im='Input\hockey ground.avi'; case 5 im='Input\xylo.avi'; end xyloObj = mmreader(im) file=im; 25

mov=[]; pickind = 'tif'; pathname = 'frames\'; f=xyloObj.Numberofframes; for k = 1 : f mov{k} = read(xyloObj, k); strtemp=strcat(pathname,int2str(k),'.',pickind); imwrite(mov{k},strtemp); end figure('name','Input video','numbertitle','off') for k = 1 : f imshow(mov{k}); hold on pause(0.05) end im=[]; block=[]; dct_block=[]; idc=[]; [m n p]=size(mov{1}); h=waitbar(0,'Applying DCT'); for t=1:f waitbar(t/f) strtemp=strcat(pathname,int2str(t),'.',pickind); im{t}=imread(strtemp); c2= mat2cell(im{t}, 10*ones(1, (m/10)), 10*ones(1, (n/10)),3); block{t}=c2; d=[];id1=[]; for i=1:size(c2,1) for j=1:size(c2,2) x=c2{i,j}; for p=1:3 d1(:,:,p)=dct2(x(:,:,p)); id(:,:,p)=idct2(d1(:,:,p)); end d{i,j}=d1; id1{i,j}=id; end end dct_block{t}=d; idc{t}=id1; end close(h) disp('Blocks') disp(block) disp('DCT-Blocks') 26

disp(dct_block) h1=waitbar(0,'Encrypting the frames'); en_bl=[]; r1=rand(1);r2=rand(1); save po1 r1 r2 r1=rand(1);r2=rand(1); save po2 r1 r2 r1=rand(1);r2=rand(1); save po3 r1 r2 ienk=[]; alk=[]; q=0;q1=0;q2=0; for t=1:f tic waitbar(t/f) d2=dct_block{t}; en=[];ien=[]; for i=1:size(c2,1) for j=1:size(c2,2) d3=d2{i,j}; for p=1:3 d4=d3(:,:,p); dc=d4(1,1); a=find(d4>0); if(a(1)==1) a1=length(a)-1; else a1=length(a); end al(i,j)=a1; if(a1<10 && a1>5) z=1; dk=subfun(z,d4,a1); q=q+1; elseif(a1>=10 && a1<20) z=2; dk=subfun(z,d4,a1); q1=q1+1; elseif(a1>20) z=3; dk=subfun(z,d4,a1); q2=q2+1; end ak(:,:,p)=dk; ek(:,:,p)=idct2(dk); end 27

en{i,j}=ak; ien{i,j}=ek; end end en_bl{t}=en; ienk{t}=ien; alk{t}=al; ti(t)=toc; end close(h1) disp('Encrypted Blocks') disp( en_bl) if(isdir('en_frames')) rmdir('en_frames','s'); end mkdir('en_frames'); pathname1 = 'en_frames\'; for i=1:f strtemp1=strcat(pathname1,int2str(i),'.',pickind); enp=en_bl{i}; imwrite(cell2mat(enp),strtemp1); end name1='encrypted.avi'; aviobj = avifile(name1); path='en_frames\'; fram2mov('en_frames\*.tif',aviobj,name1,path) save fi1 file save ti1 ti save alk1 alk save ftt f save dcb dct_block save cc c2 save mov1 mov function pushbutton2_Callback(hObject, eventdata, handles) load alk1 load ftt load dcb load cc load mov1 pickind = 'tif'; ii=decryp(alk,f,dct_block,c2); if(isdir('de_frames')) rmdir('de_frames','s'); end mkdir('de_frames'); pathname2= 'de_frames\'; 28

for i=1:f strtemp2=strcat(pathname2,int2str(i),'.',pickind); imwrite(uint8(ii{i}),strtemp2); end name2='decrypted.avi'; aviobj1 = avifile(name2); path1='de_frames\'; fram2mov('de_frames\*.tif',aviobj1,name2,path1) for i=1:f k1=mov{i}; k2=uint8(ii{i}); er(i)=mean(mean(mean((k1-k2))))/100; end save er1 er function pushbutton3_Callback(hObject, eventdata, handles) load fi1 load er1 load ti1 fileinfo = aviinfo(file); fileinfo1 = aviinfo('encrypted.avi'); v1=fileinfo.FileSize/1024; v2=fileinfo1.FileSize/1024; figure('name','Comparison by size','numbertitle','off') bar(3,v1,'r'); hold on bar(6,v2,'m'); axis([1 10 0 max(v1,v2)+200]) xlabel('Videos') ylabel('Size (Bytes)') legend('Original','Encrypted') figure('name','Time For Encryption','numbertitle','off') plot(1:length(ti),ti,'m'); xlabel('Different frames') ylabel('Time (Sec)') figure('name','Error For Encryption','numbertitle','off') plot(1:length(er),er,'r'); xlabel('Different frames') ylabel('Error') function pushbutton4_Callback(hObject, eventdata, handles) close all; clc; subfunction.m: function dk=subfun(z,d4,a1) 29

if(z==1) dk=d4; r=4; load po1; acn=d4(a1); dk(1)=poly(d4,r1); dk(1,2)=poly(d4,r2); dk(1,3)=poly(d4,2); dk(1,4)=poly(d4,3); dk(a1)=poly(d4,a1); end if(z==2) dk=d4; r=8; load po2; dk(1)=poly1(d4,r1); dk(1,2)=poly1(d4,r2); dk(1,3)=poly1(d4,2); dk(1,4)=poly1(d4,3); dk(1,5)=poly1(d4,4); dk(1,6)=poly1(d4,5); dk(1,7)=poly1(d4,6); dk(1,8)=poly1(d4,7); dk(a1)=poly1(d4,a1); end if(z==3) dk=d4; r=8; load po3; acn=d4(a1); dk(1)=poly2(d4,r1); dk(1,2)=poly2(d4,r2); dk(1,3)=poly2(d4,2); dk(1,4)=poly2(d4,3); dk(1,5)=poly2(d4,4); dk(1,6)=poly2(d4,5); dk(1,7)=poly2(d4,6); dk(1,8)=poly2(d4,7); dk(1,9)=poly2(d4,8); dk(1,10)=poly2(d4,9); dk(2,1)=poly2(d4,10); dk(2,2)=poly2(d4,11); dk(a1)=poly2(d4,a1); end function f=poly(d4,x) dc=d4(1); 30

ac1=d4(1,2);ac2=d4(1,3);ac3=d4(1,4); f1=ac3*(x^3)+ac2*(x^2)+ac1*(x^1)+dc; f=mod(f1,251); function f=poly1(d4,x) dc=d4(1); ac1=d4(1,2);ac2=d4(1,3);ac3=d4(1,4);ac4=d4(1,5);ac5=d4(1,6);ac6=d4(1,7);ac7=d4(1,8) ; f1=ac7*(x^7)+ac6*(x^6)+ac5*(x^5)+ac4*(x^4)+ac3*(x^3)+ac2*(x^2)+ac1*(x^1)+dc; f=mod(f1,251); function f=poly2(d4,x) dc=d4(1); ac1=d4(1,2);ac2=d4(1,3);ac3=d4(1,4);ac4=d4(1,5);ac5=d4(1,6);ac6=d4(1,7);ac7=d4(1,8);ac8=d4(1 ,9);ac9=d4(1,10);ac10=d4(2,1);ac11=d4(2,2); f1=ac11*(x^11)+ac10*(x^10)+ac9*(x^9)+ac8*(x^8)+ac7*(x^7)+ac6*(x^6)+ac5*(x^5)+ac4*(x^4) +ac3*(x^3)+ac2*(x^2)+ac1*(x^1)+dc; f=mod(f1,251); Frames2movie.m: function fram2mov(dname,aviobj,name,path) dirData = dir(dname) % dirData =dir(dname); fileNames = {dirData.name}; l=length(fileNames); for i=1:l [a, map] = imread(strcat(strcat(path,int2str(i),'.tif'))); M = im2frame(a); aviobj = addframe(aviobj,M); end disp('Closing movie file...') aviobj = close(aviobj); %play the movie disp('Playing movie file...') implay(name);

decrypt.m: % decryption function ii=decryp(alk,f,dc,c2) ii=[]; for t=1:f w=alk{t}; d2=dc{t}; 31

id1=[]; for i=1:size(c2,1) for j=1:size(c2,2) w1=w(i,j); if(w1>30) x=d2{i,j}; for p=1:3 ui(:,:,p)=idct2(x(:,:,p)); end id1{i,j}=ui; else id1{i,j}=d2{i,j}; end end end ii{t}=cell2mat(id1); end

10.APPENDIX-2 SCREEN SHOTS 1.Main page

32

2.Applying DCT: Video is given as input to the DCT function.

33

3.Encrypting frames The frames are encrypted using Secret Sharing algorithm. 34

4.Encrypted video The encrypted frames are converted to movie file format. 35

5.Encrypted frames: Images of encrypted frames. 36

6.Decrypted video The encrypted video is decrypted by reverse process of encryption.

37

7.Decrypted frames Images of the decrypted frames. 38

8.Comparison by Size The comparison is made between original video and encrypted video. 39

9.Time taken for encryption Time taken for each frame for encryption is calculated and plotted.

40

10.Error for encryption The difference between original video and decrypted video is calculated.

41

11. REFERENCES

42

[1] L. Tang, Methods for encrypting and decrypting MPEG video data efficiently, in Proc. of ACM Multimedia, pp. 219229. [2] L. Qiao and Klara Nahrstedt, A new algorithm for MPEG video encryption, in Proc. of First International Conference on Imaging Science System and Technology, 1997, pp. 2129. [3] Wenjun Zeng and Shawmin Lei, Efficient frequency domain selective scrambling of digital video, in Proc. of the IEEE Transactions on Multimedia, 2002, pp. 118129. [4] Zhenyong Chen, Zhang Xiong, and Long Tang, A novel scrambling scheme for digital video encryption, in Proc. of Pacific-Rim Symposium on Image and Video Technology( PSIVT), 2006, pp. 9971006. [5] B. Furht and D. Kirovski, Multimedia Security Handbook, CRC Press LLC, 2004. [6] C. Shi and Bharat Bhargava, A fast MPEG video encryption algorithm, in Proc. of ACM Multimedia, 1998, pp. 8188. [7] A. Shamir, How to share a secret, in Proc. of Communications of the ACM, 1979, vol. II, pp. 612613. [8] Zheng Liu, Xue Li, and Zhaoyang Dong, Enhancing security of frequency domain video encryption, in Proc. of ACM Multimedia, 2004, pp. 304307. [9] J. Meyer and F. Gadegast, Security mechanisms for multimedia data with the example MPEG1 video, available at www.gadegast.de/frank/doc/secmeng.pdf. [10] Wei-Tsang Ooi, Brian Smith, Sugata Mukhopadhyay, Haye Hsi Chan, SteveWeiss,Matthew Chiu, and Jiesang Song, The DALI multimedia software library, in SPIE Multimedia Computing and Networking, 1999.

43

Das könnte Ihnen auch gefallen