IMPLEMENTATION OF THE SYMMETRICAL ENCRYPTION STANDARD DES USING C PROGRAMMING LANGUAGE AND COMPARISON ITS EXECUTION TIME WITH OTHER UTILITIES

Abstract
This research dedicated to the review, implementation and analysis of the symmetric encryption algorithm, namely - DES (Data Encryption Standard) that encrypts and decrypts text information. For this algorithm represented not only a verbal description, but also schemes of its execution and examples of implementation. Intermediate results and the results of information encryption / decryption in the implemented algorithm were verified using examples, so we can assume that the algorithm implemented correctly. Comparison of the execution time for the DES algorithm proposed implementation made for two utilities. One of them is OpenSSL, developed using assembler and the capabilities of the C programming language. The other utility developed using programming language Java. The comparison was made according to three criteria: full time from the utility execution start to its completion; the time spent by the process to execute the utility (downtime and time when the processor perform other tasks not accounted); the time taken by the operating system to run a utility, such as reading or writing the file. The analysis showed that the total execution time is not equal to the total amount of time spent by both the processor and the operating system to execute the utilities. This is due to the following: the total execution time is the real time spent on the execution of the utility; it can measure with a stopwatch. Whereas the time spent by the processor to execute the utility is measured somewhat differently: if two cores execute the same utility for 1 second, the total execution time will be 2 seconds, although in fact one second of time has passed. From the comparison follows the next conclusion: the time spent on encryption is less than the time spent on decryption. The execution time for different utilities is different: the time for OpenSSL utility turned out to be the best, because such an implementation is most adapted to the hardware. The utility in Java turned out to be the worst in terms of execution time. We propose the implementation of the DES algorithm of the nearest execution time to the fastest of the considered. Because a number of hacking possibilities have been found for the symmetric encryption standard DES, in particular due to the small number of possible keys, there is a risk of overriding them. Therefore, to increase crypto currency, other versions of this algorithm have been developed: double DES (2DES), triple DES (3DES), DESX, G-DES. In the future, it is planned to develop a utility based on our proposed implementation of the DES algorithm and to demonstrate the operation of its modifications.