novel video encryption

Upload: suganya-selvaraj

Post on 02-Apr-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/27/2019 Novel video encryption

    1/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

  • 7/27/2019 Novel video encryption

    2/43

    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

  • 7/27/2019 Novel video encryption

    3/43

    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

    3

  • 7/27/2019 Novel video encryption

    4/43

    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.

    4

  • 7/27/2019 Novel video encryption

    5/43

  • 7/27/2019 Novel video encryption

    6/43

    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.

    6

  • 7/27/2019 Novel video encryption

    7/43

    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.

    7

  • 7/27/2019 Novel video encryption

    8/43

    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

    8

  • 7/27/2019 Novel video encryption

    9/43

    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.

    9

  • 7/27/2019 Novel video encryption

    10/43

    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 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.

    10

  • 7/27/2019 Novel video encryption

    11/43

    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

  • 7/27/2019 Novel video encryption

    12/43

    5.4 DATA FLOW DIAGRAM

    LEVEL 0

    Figure 1. DFD level 0

    12

    User

    A novel videoencryption

    technique based

    on secret

    sharing

    User

  • 7/27/2019 Novel video encryption

    13/43

    LEVEL 1

    Figure 2. DFD level 1

    13

    Video

    User

    Compress the

    video by DCT

    Encryption and

    Secret Sharing by

    Shamirs secretsharing scheme

    Compute ErrorTolerance

    Decryption

    User

  • 7/27/2019 Novel video encryption

    14/43

    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

  • 7/27/2019 Novel video encryption

    15/43

  • 7/27/2019 Novel video encryption

    16/43

    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

    16

  • 7/27/2019 Novel video encryption

    17/43

    most one good 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 inputs. The

    functional testing will need to prove that the application works for each client type and that

    personalization function work correctly.

    17

  • 7/27/2019 Novel video encryption

    18/43

    Test case no Description Expected result

    1 Test for all modules All module should

    communicate in the

    application.

    2 Test for every functions in a framework

    as it display all results.

    The result after execution

    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 Description Expected result

    1 It is necessary to ascertain that the

    application behaves correctly under

    loads of all the components.

    Should display error

    message for particular

    components.

    PERFORMANCE TESTING

    18

  • 7/27/2019 Novel video encryption

    19/43

    Test case no Description Expected result

    1 This is required to assure that an

    application perforce adequately, having

    the capability to handle many peers,

    delivering its results in expected time

    and using an acceptable level of resource

    and it is an aspect of operational

    management.

    Should handle large input

    values, and produce

    accurate result in a

    expected time

    RELIABILITY TESTING

    Test case no Description Expected result

    1 This is to check that the system is rugged

    and reliable and can handle the failure of

    any of the components involved in

    provide the application.

    In case of failure of the

    system an error handling

    function should take over

    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

  • 7/27/2019 Novel video encryption

    20/43

    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. The 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

    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 enough to

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

    20

  • 7/27/2019 Novel video encryption

    21/43

    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 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

    21

  • 7/27/2019 Novel video encryption

    22/43

    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.

    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.

    22

  • 7/27/2019 Novel video encryption

    23/43

    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

  • 7/27/2019 Novel video encryption

    24/43

  • 7/27/2019 Novel video encryption

    25/43

    Encrypt.m:

    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});

    endif 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 4im='Input\hockey ground.avi';

    case 5

    im='Input\xylo.avi';

    end

    25

  • 7/27/2019 Novel video encryption

    26/43

    xyloObj = mmreader(im)

    file=im;

    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 : fimshow(mov{k});

    hold on

    pause(0.05)

    endim=[];

    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')

    26

  • 7/27/2019 Novel video encryption

    27/43

    disp(block)

    disp('DCT-Blocks')

    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 r2r1=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;

    elsea1=length(a);

    end

    al(i,j)=a1;if(a15)

    z=1;

    dk=subfun(z,d4,a1);

    q=q+1;elseif(a1>=10 && a120)

    z=3;dk=subfun(z,d4,a1);

    q2=q2+1;

    end

    ak(:,:,p)=dk;

    27

  • 7/27/2019 Novel video encryption

    28/43

    ek(:,:,p)=idct2(dk);

    end

    en{i,j}=ak;ien{i,j}=ek;

    end

    enden_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');

    endmkdir('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 filesave ti1 ti

    save alk1 alk

    save ftt fsave dcb dct_block

    save cc c2

    save mov1 mov

    function pushbutton2_Callback(hObject, eventdata, handles)load alk1

    load ftt

    load dcbload cc

    load mov1

    pickind = 'tif';ii=decryp(alk,f,dct_block,c2);

    if(isdir('de_frames'))

    rmdir('de_frames','s');

    end

    28

  • 7/27/2019 Novel video encryption

    29/43

    mkdir('de_frames');

    pathname2= 'de_frames\';

    for i=1:fstrtemp2=strcat(pathname2,int2str(i),'.',pickind);

    imwrite(uint8(ii{i}),strtemp2);

    endname2='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 er1load 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:

    29

  • 7/27/2019 Novel video encryption

    30/43

    function dk=subfun(z,d4,a1)

    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);

    endif(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

    30

  • 7/27/2019 Novel video encryption

    31/43

  • 7/27/2019 Novel video encryption

    32/43

    w=alk{t};

    d2=dc{t};

    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:3ui(:,:,p)=idct2(x(:,:,p));

    end

    id1{i,j}=ui;

    elseid1{i,j}=d2{i,j};

    end

    end

    endii{t}=cell2mat(id1);

    end

    10.APPENDIX-2

    SCREEN SHOTS

    1.Main page

    32

  • 7/27/2019 Novel video encryption

    33/43

    2.Applying DCT:

    Video is given as input to the DCT function.

    33

  • 7/27/2019 Novel video encryption

    34/43

    34

  • 7/27/2019 Novel video encryption

    35/43

    3.Encrypting frames

    The frames are encrypted using Secret Sharing algorithm.

    4.Encrypted video

    35

  • 7/27/2019 Novel video encryption

    36/43

    The encrypted frames are converted to movie file format.

    5.Encrypted frames:

    36

  • 7/27/2019 Novel video encryption

    37/43

    Images of encrypted frames.

    6.Decrypted video

    37

  • 7/27/2019 Novel video encryption

    38/43

    The encrypted video is decrypted by reverse process of encryption.

    7.Decrypted frames

    38

  • 7/27/2019 Novel video encryption

    39/43

    Images of the decrypted frames.

    8.Comparison by Size

    39

  • 7/27/2019 Novel video encryption

    40/43

    The comparison is made between original video and encrypted video.

    9.Time taken for encryption

    40

  • 7/27/2019 Novel video encryption

    41/43

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

    10.Error for encryption

    41

  • 7/27/2019 Novel video encryption

    42/43

    The difference between original video and decrypted video is calculated.

    11. REFERENCES

    42

  • 7/27/2019 Novel video encryption

    43/43

    [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. 612

    613.

    [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 MPEG-1

    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.