dc.description.abstract | Nowadays, cryptographic systems are used to verify the confidentiality, integrity andsource of the data. Cryptographic systems can be grouped under two categories assymmetric and asymmetric crypto systems. In symmetric crypto systems,the screetkey needs to be used for both encryption and decryption. For this reason, the screetkey must be shared over a secure channel before communication. This situationcreates difficulties in practice. Asymmetric crypto systems proposed by DiffieHellman overcome from this difficulty. Asymmetric crypto systems use two differentkeys for encryption and decryption named public and private and sharing only thepublic key is sufficient for communication. In this case it is not necessary to use asecure channel. The most widely used algorithm for asymmetric crypto systems isthe Rivest Shamir Adleman (RSA) algorithm. Both symmetric and asymmetriccryptosystems are attacked by attacks which target mathematical infrastructures andside channel analysis attacks which target implementation. Major side channelanalysis attacks are timing analysis, power analysis and fault injection attacks.Multi-core processors offer higher processing power and lower operation frequencythan single-core processors. Multi-core processors also reduces system cost due tolower power consumption and less space occupancy. Multiprocessing consists ofAsymmetric Multi Processing (AMP) and Symmetric Multi Processing (SMP)modes. In SMP mode, one operating system manages all processor cores andapplications can use any of the processor cores. In AMP mode, each core runs adifferent operating system or a copy of the same operating system. In this thesis,Leon3 processor, a synthesizable processor designed by Gaisler Aeroflex, is used inSMP mode with 3 cores. The operating system running on Leon3 cores is chosen asLinux operating system compiled with SMP support. The Pthreads library is used totake advantage of multithreading support of Linux. Pthreads library providesfacilities such as writing code that multiple threads work in the same program andinter-thread synchronization mechanisms. It also allows configuration of the desiredthread so that it runs on the desired processor core.The purpose of this work is to implement the RSA algorithm to be resistant to faultinjection attacks, which are implemented in the form of temporary bit errors on thesecret key. For this purpose, a system on chip was designed and synthesized using 3Leon3 core and it was run on Digilent's Nexys4DDR Field Programmable GateArray (FPGA) development card. Then Linux operating system was compiled for theLeon3 microprocessor and it run on the Leon3 system on chip. Finally, the RSAalgorithm is written in C ++ programming language. Software based Triple ModularRedundancy (TMR) is implemented by performing the same decryption process oneach processor core. In this realization, the RSA algorithm running on each processorxviiiis starting to work with a certain time difference. If one of the processor cores isaffected by temporary bit errors and produces a wrong result, the result produced bythe other two processors will be accepted correctly.For analysing the proposed method three case are compared with each other. Firstcase is the one that only one thread is running for RSA decryption, that is, TMRmethod is not used. Second case is the one that three thread is running, that is TMRmethod is used, for RSA decryption of the same ciphertext with one copy of thesame secret key. Third case which is the proposed method is the one that three threadis running, that is TMR method is used, for RSA decryption of the same ciphertextwith the same secret key. In the proposed method, there is only one copy of thesecret key and all of three threads are using this copy. After analysis of these threecases, effect of Cylic Redundancy Check(CRC) for checking integrity of the secretkey is analyzed when used with the proposed method. Firstly, the proposed method istested on Linux operating system running on triple core Leon3 processor. It is shownthat the method is succesfully running on the system. After that, for detailed analysisof the proposed method, Linux operating system installed on PC is used because ofperformance constraint of Leon3 processor system I synthesized.In the analysis of the first case, that is only one thread is running for RSA decryption,the program written for analysis does different number of decryption at each step(from 50 to 2000 inreasing with 50 at each step). For each step percentage ofsucceeded fault attacks are calculated. Analysis results for first case shows that ateach step approximately 13,33% of fault attacks are succeeded. The same test is donewhen CRC is performed on the secret key with 1 ms period. In this case, 1,348% offault attacks are succeeded.For the second and third cases that TMR method is used, the most important situationis the situtation that the result of RSA decryption is wrong, while TMR method issucceeded, that is, at least two of three thread are generated the same result for RSAdecryption. In this situation fault attack is succeeded, because the system generatesfaulty output. Another important situation is the situation that TMR method is failed,that is, all threads are generated different decryption results with each other. In thissituation neither fault attack is succeeded, nor true result for decryption is generated.In the analysis of the second case, that is TMR method is used and all threads useone copy of the same secret key, the program written for analysis does differentnumber of decryption at each step (from 500 to 32000 inreasing with 500 at eachstep). For each step percentage of succeeded fault attacks are calculated. At the sametime the percentage of the situation that TMR is failed is calculated. Analysis resultsfor second case shows that at each step approximately 0,1% of fault attacks aresucceeded. Also 8,282% of fault attacks causes TMR method to fail. The same test isdone when CRC is performed on each secret key with 1 ms period. In this case,0,002578% of fault attacks are succeeded.In the analysis of the third case (the proposed method), that is TMR method is usedand all threads use the same copy of the secret key, for different start delays betweenthreads, analyzes are done. It is seen that when start delay is increasing, the successof fault attack is decreased, but not as much as in situation 2. The same test is done,when CRC period is performed on the secret key with different CRC period values.According to results, we can say that when CRC period and start delay of threadsincreasing, success rate of fault attack is decreasing. For every CRC period, if startxixdelay between thread 1-2 and 2-3 is greater than a specific value, success rate of faultattack goes to 0%.When we compare the second and the third case, we see that third case which is theproposed method is more secure because of usage of one copy for the secret key. Onthe other hand, the second method has advantage over the proposed method in termsof time consumed for one RSA decryption operation. In terms of the situation thatTMR is failed, the proposed method is more effective than the second case. | en_US |