Geri Dön

RSA algoritmasını kullanan şifreleme/deşifreleme yazılımının tasarımı

Data encyption/decryption methods and software design of RSA algorithm

  1. Tez No: 39281
  2. Yazar: METİN ERHAN
  3. Danışmanlar: DOÇ.DR. BÜLENT ÖRENCİK
  4. Tez Türü: Yüksek Lisans
  5. Konular: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol, Computer Engineering and Computer Science and Control
  6. Anahtar Kelimeler: Belirtilmemiş.
  7. Yıl: 1993
  8. Dil: Türkçe
  9. Üniversite: İstanbul Teknik Üniversitesi
  10. Enstitü: Fen Bilimleri Enstitüsü
  11. Ana Bilim Dalı: Belirtilmemiş.
  12. Bilim Dalı: Belirtilmemiş.
  13. Sayfa Sayısı: 83

Özet

ÖZET Şifreleme/deşifreleme (encryption-decryption) bir bilgisayar şebekesinde veya kişisel bilgisayarlarda haberleşme yada dosya güvenliğini sağlamak için kullanılır. Bu nedenle günümüz de, bilgisayarlar da ya da bilgisayar şebekelerinde şifrelemenin önemi gün geçtikçe artmaktadır. Bu çalışma da tasarlanan açık anahtar şifreleme yazılımı. RSA algoritmasını kullanarak kişisel bilgisayarlarda dosya güvenliğini sağlamak amacıyla gerçekleştirilmişdir. Yapılan tasarımda farklı işlevlere sahip iki program mevcuttur. Bunlardan ilki, RSA şifreleme sisteminin temelini oluşturan asal sayılann seçimi ve bunlara bağlı olarak anahtarların hesaplanması işlevini yerine getirir. Saklı tutulan bu asal sayılar seçilirken, bu sayıların çarpımından oluşan ve açık tutulan sayının faktorizasyonunun kolaylıkla yapılamayacak olmasına dikkat edilmişdir. Ayrıca bu işlemde, çeşitli algoritmalar ve olasılıksal test metodlan, asal sayılann seçiminde kullanılrnışdır. Şifreleme/deşifreleme işlemini gerçekleştiren program, önceki yazılım ile belirlenen anahtarları kullanarak, çeşitli algoritmalar yardımıyla sonuca kısa sürede ulaşır. Bu programlar da kullanılan sayılann boyutlan çok büyük olduğundan, tüm temel işlemler için ikili düzendeki sayılar üzerinde işlem yapan fonksiyonlar tanımlanmışdır. Programlar da bilinen üstünlükleri nedeniyle C programlama dili kullanılrnışdır. Ayrıca DES algoritması, anahtar yönetimi, bilinen diğer açık anahtar sistemleri ve uygulamaları, sayısal imza ve Hash fonksiyonlan, kriptolarına protokolleri kısaca anlatılmışdır. VI

Özet (Çeviri)

DATA ENCRYPTION / DECRYPTION METHODS AND SOFTWARE DESIGN OF RSA ALGORITHM SUMMARY Glyptography is a word that has been derived from the Greek words for“secret writing”. It generally implies that information which is secret or sensitive may be converted from an intelligible form to an unintelligible form. The intelligible form of information or data is called“plaintext”and unintelligible form is called“ciphertext”. The process of converting from plaintext to ciphertext is called“encryption”and the reverse process is called“decryption”. Most cryptographic algorithms make use of a secret value called the key. Encryption and decryption should be virtually impossible without the use of the correct key. The process of attempting to find a shortcut method, not envisioned by the designer, for decrypting the ciphertext when the key is unknown is called“cryptoanalysis”. Computer communication systems, local-area networks., interconnected local-area networks, and electronic mail systems are playing an increasingly important role in office automation, telecommunications, and factory automation. A prerequisite for extensive usage of these services with full or partial replacement of conventional paper mail by an electronic medium, is security. It must be possible to guarantee the secrecy of a message. Furthermore, the receiver of a message wants to verify that the indicated and the real sender are one and the same (i.e., there must be a provision for electronic (digital) signatures and signature verification). Two major crytosystems are in use today; private key cryptosystems and public key cryptosystems. Two major encryption algorithms related to these cryptosystems : DES and RSA. respectively. After the publication of the Data Encryption Standart in 1 977, it quickly became clear that there was much more to the implementation of a secure cryptographic system than a high quality cryptographic algorithm. It can be argued that the development of a secure cryptoalgorithm is an essential tool, but only one building block, of a secure data system. The known organizations have developed data security standarts for security applications. Their goal was to achieve a common level of security and inter-operability. The efforts of the standarts-making organizations have also served a purpose far beyond the actual standarts that were developed. Standartizations, validation, and certification programs greatly increased the public's interest in cryptography and raised the level of confidence that it could be a cost effective solution to practical security problems. There is still much to decide about the best vnuse of cryptography, but there is now no doubt that it will be used far beyond its original military applications. Originally standart data encryption algorithms were intended for the encryption and decryption of computer data. However its application has been extended to data authentication as well. In automated data processing systems it is often not possible for humans to scan data to determine if it has been modified. Examination may be too time consuming for the vast quantities of data involved in modern data processing or the data may have insufficient redundancy for error detection. Even if human scanning were possible, the data could have been modified in such a manner that it would be very difficult for the human to detect the modification. For example,“do”may have been changed to“do not”or“1900”may have been changed to“9100”. Without additional information the human scanner could easily accept the altered data as authentic. These threats may still exist even when data encryption is used. It is therefore desirable to have an automated means of detecting both intentional and unintentional modifications of data. Ordinary error detecting codes are not adequate because, if the algorithm for generating the code is known, an adversary can generate the correct code after modifying the data. Intentional modification is undetectable with such codes. However for example, DES can be used to produce a cryptographic checksum which can protect against both accidentia! and intentional, but unauthorized, data modification. When using a private key cryptosysterns such as DES, both the receiver must know the key used to encrypt (decrypt) the data. Therefore, you need a safe means of transmitting the key from one to the other. If you change the keys frequently transmitting them becomes a major problem. Furthermore it's impossible to communicate with someone new until you've safely exchanged keys, but this can take a long time. The most popular private key crypto system is DES. DES works on one 8-byte (64 bit) block at a time. The encryption process is controlled by a user supplied 56-bit key. Every bit in the output is a complex function of every bit in the key. Decryption under DES is the reverse of encryption and is performed by working the algorithm backward. The encryption process consists of an initial permutation of the input block followed by 1 6 rounds of encipherrnent and finally an inverse of the initial permutation. After the initial permutation, the block being encrypted is divided into two parts, called Lg and Rg. In each of the 16 rounds of encipherrnent the new L part is the previous round's R part. The new R is the previous round's L part XORed with the result of the cipher function f. The cipher function (t) derives its output based on the old R part and the current round's key (Kj). You use the inputs to perform substitution via eight look up tables called S-boxes and then permute the combined output of the S-boxes to give the function's output. DES's biggest weakness is its limited key length. It's critics claim that you might be able to break DES with a brute-force attack (i.e., by trying every possible keys). VIIIPublic key cryptosysterns are designed to overcome the shortcomings of the private key cryptosysterns. Public key cryptosysterns are based on the use use of a trap-door one way function. You can easily compute such a function in one way only used to encrypt the data. To compute the function in the other direction used to decrypt the data you must have certain secret information, hence the name trap-door. In a public key cryptosystem, each person has two keys ; one for encrypting, Ep, and one for decrypting. Dp. Decrypting with Dp. a plaintext P that was encrypted using E^ restores the original plaintext- that's, Dpi, EpiP))=P. Both Ep_ and D^ should be easy to compute, but knowing Ep_ does not reveal DA If you use a public key cryptosystem, you can publish your encrypting key E/^(the public key) in a public directory, while you keep D/sJthe private key) secret. If someone wants to send you a message, all that person has to do is look up your public key {Ep) and use it to encrypt the message as Ep[P). Only you know the private key D^, so only you can decrypt the message back to its original plaintext DpflzpfPfrP. The most irnportatnt public key cryptosystem todat is P.SA named after its inventors Rivest Shamir and Adleman. To use RSA, you need to choose, at random, two large prime numbers, to be called (p) and (q). Compute (n) as the product of the two primes ; n=p*q. Then randomly choose a large number (d), so that (d) is relatively prime to (p-1)*(q-1). In other words, the greatest common divisor of (d) and (p-1)*(q-1) is 1. Finally compute (e) so that (e*d) rnod(p-1)*(q-1)=1. The public key is the pair of numbers (e,n) and the private key is (d,n). In addition to ensuring privacy, encryption can be used to verify authenticity. For instance, send a message to another user, how can that user prove that you did ?. Simply encrypting the message using a key known only to you and the other user does not solve the problem. The other user would be satisfied that you had sent the message. Public key cryptosysterns can provide an elegant and simple solution by creating digital signatures. If you want to send a private message that can be authenticated to someone else, then you encrypt D^(P) with that person's public key, giving Eg(D^(P)). Using the private key, Dg, that person would derive Db(Eb(D^(P)))=Da(P) and then decrypt DA(P) by using EpPpjP))=P. Thus, both privacy and authenticity have been achieved. To send a secret message M to a user B, user A obtains B's public key Eg, encrypts the plaintext message M as C=Eg(M), and transmits the ciphertext C to B. B's private transformation Dg, is the inverse of Eg, so that B can decipher C and obtain M by computing Dg(C)=M. IXif the ctytosystem is secure., secrecy is possible under the following conditions ; *no other user knows Dg * there's enough uncertainty about M. The encryption key Eg is public, so if only a few likely candidates M-|,Mg Mn exist for M, then M can be found by enciphering these candidates until a M is found that enciphers to the sane C; that's EB(M)=C, where M=Mj. With encryption alone, B can't be sure the received message is the one sent from A, because an active wiretapper could obtain Eg and alter A 's message. He might even impersonate A. To give B this assurance the message must be signed by A. To send a signed message M to B, user A applies the private transformation D^ to M. Ignoring the issue of secrecy for the moment A computes and transmits to B the digital signature x=D^(M). A 's public transformation E^ is the inverse of D/^, so that B (or a judge) can validate A's signature on an alleged message M by checking whether E/vl(x)=M. Public key systems generally encrypt more slowly than conventional ciphers such as DES. Therefore it is usually not desirable to apply a digital signature directly to a long message. On the other hand, the entire message must be signed. The solution is that using Hash functions. A Hash function H accepts a variable-size message M as input and outputs a fixed- size representation H(M) of M, sometimes called a message digest. In general, H(M) is much smaller than M. Regardless of whether a conventional or public, key cryptosystem is used, it is necessary for users to obtain other users' keys. In conventional cryptosystems this problem can be solved by using a courier service or central authority. Another solution is Merkle puzzles. In public, key systems the key- management problem is simpler because of the public nature of the key material exchanged between users. The solution is Exponential key exchange scheme. Several public key systems other than RSA have been proposed. One of thern is Knapsack systems, the another one is El-Gamal signature scheme. None of these systems rivals RSA if a combination of versatility, security and practicality is the criterion. However, this does not preclude their use for specific applications such as digital signatures. The essence of zero-knowledge is that one party can prove something to another without revealing any dditional information. There are some protocols related to zero-knowledge proofs. That's, these protocols are used for convincing proofs with no details. Furthermore there are some important protocols related to partial disclosure of secrets and sharing a secretIn modular arithmetic, there are very useful theorems and algorithms for efficient computation. These are briefly explained in chapter?. In this study, RSA algorithm with large primes is realised in C programming languages. Choosing large primes is done by another program which uses some cryptographic theorems and algorithms. Efficient algorithms are used in RSA program for minimizing the run time. Numbers used by programs can be larged easily because of the modular structures of the programs. For each mathematical operation, a standart function that works on large numbers is written. As we move towards a society where automated information resurces are increasingly shared, cryptography will continue to increase in importance as a security mechanism. Electronic networks for banking, shopping, inventory control, benefit and service delivery, information storage and retrieval distributed processing and government applications will need improved methods for access control and data security. xt

Benzer Tezler

  1. A new public key algorithm and complexity analysis

    Yeni bir açık anahtar algoritması ve karmaşıklık analizi

    SELİN ÇAĞLAR

    Yüksek Lisans

    İngilizce

    İngilizce

    2023

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Bilişim Uygulamaları Ana Bilim Dalı

    PROF. DR. ENVER ÖZDEMİR

  2. RSA algoritmasının üç çekirdekli LEON3 işlemcisi tabanlı sistem üzerinde hata enjekte etme atağına dayanıklı gerçeklenmesi

    Implementation of RSA algorithm resistant to fault injection attack on system based on triple core LEON3 processor

    İSMAİL DEMİR

    Yüksek Lisans

    Türkçe

    Türkçe

    2018

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrolİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    DOÇ. DR. SIDDIKA BERNA ÖRS YALÇIN

  3. Secure SMS using simplified PGP

    Basitleştirilmiş PGP kullanarak güvenli SMS şifreleme

    GÖKSEL CAN

    Yüksek Lisans

    İngilizce

    İngilizce

    2008

    Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve KontrolIşık Üniversitesi

    Bilgisayar Mühendisliği Bölümü

    DOÇ. DR. ERCAN SOLAK

  4. Raspberry Pi üzerinde gerçeklenmiş RSA algoritmasına yan kanal analizi

    Side channel analysis to RSA algorithm implemented on Raspberry Pi

    ERSİN HATUN

    Yüksek Lisans

    Türkçe

    Türkçe

    2018

    Elektrik ve Elektronik Mühendisliğiİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    DOÇ. DR. SIDDIKA BERNA ÖRS YALÇIN

  5. Hardware design of K2RED modular multiplication algorithm used in number theoretic transform for post quantum cryptography and homomorphic encryption

    Post kuantum kriptografi ve homomorfik şifreleme için sayı teorik dönüşümünde kullanılan K2RED modüler çarpma algoritmasının donanım tasarımı

    FURKAN CAN

    Yüksek Lisans

    İngilizce

    İngilizce

    2024

    Bilim ve Teknolojiİstanbul Teknik Üniversitesi

    Elektronik ve Haberleşme Mühendisliği Ana Bilim Dalı

    PROF. DR. SIDDIKA BERNA ÖRS YALÇIN