# Rabin Cryptography and Implementation using C programming language

November 10, 2017 | Author: al-amin shohag | Category: Cryptography, Key (Cryptography), Public Key Cryptography, Prime Number, Cipher

#### Short Description

This is an assignment on Rabin Cryptography and implementation of CRT in C programming language....

#### Description

Jagannath University Department of Computer Science and Engineering M.Sc in Computer Science and Engineering (Evening) Program Submitted To: Aminul Islam Submitted By: Al-Amin Shohag Section: A Student ID: M160305504 Session: Winter-2016

1

Chapter 1. Introduction 1.1 Public key cryptosystem 1.1.1 RSA Cryptosystem 1.1.2 Brief Introduction toRabin Cryptosystem Chapter 2. Introduction to CryptographicMathematics 2.1 Integer 2.1.1 Integerrepresentations 2.1.2 Greatest Common Division 2.1.3 Primes 2.1.3.1 Relative Primes 2.1.3.2 Generating Primes 2.2 ModularArithmetic 2.2.1Congruence 2.2.2 Multiplicative Inverse 2.3 Chinese Remainder Theorem

Chapter 3. Introduction to Rabin Cryptosystem 3.1 Rabin Cryptosystem 3.1.1 Key Generation Algorithm 3.1.2 Encryption Algorithm

2

3.1.3 Decryption Algorithm 3.2 Security and Attacks

Chapter 4. Implementing CRT and Rabin Decryption Algorithm Using C Programming Language 4.1CRT and Rabin Decryption Program in C 4.2 Limitations in Implementing CRT and Rabin Decryption Algorithm in C 4.3 Assumptions

Future Intend Reference

3

Chapter 1 Introduction to Public Key Cryptosystem 1.1

Introduction

Public key cryptosystem which is also known as asymmetric key cryptography was introduced in the year 1970 to avoid the need for keys sharing by every pair of parties that wish to communicate securely. Such system allows all the parties to encrypt messages using a key that is known to all but the decryption is allowed only to the intended party of those messages. The recipient of a message uses a key to decrypt it. The key that is used by all parties is known as public key and the key used by the recipient to decrypt the message is known as private key or secret key. The encrypted message sent by a party is called cipher text. And the message is called plaintext. The plaintext and cipher text are treated as integers in this system. The cipher text which is denoted as C=f(public key, plaintext). The plaintext which is denoted as P=f(private key, cipher text). Public key cryptosystem is normally used for to encrypt or decrypt small pieces of information, such as the cipher key for a symmetric key cryptosystem. It is a system used for auxiliary goal instead of message encipherment.

1.1.1

RSA Cryptosystem

The most common public key cryptosystem is the RSA cryptosystem named after the inventors Rivest, Adi Shamir and Leonard Adleman. It was invented in 1976 by these three researchers at Massachusettes Institute of Technology(MIT). The system uses two exponent e and d where e is public and d is private. The encryption of the plaintext p is done by using e , n and modular arithmetic which produces cipher text c and decryption is done using d ,n and modular arithmetic to get the plaintext from the cipher text c. The n is generated through key generation algorithm of RSA cryptosystem.

4

e

Encryption:

c= p modn

Decryption:

p=c modn

d

Key generation: select two large primes p ,q. Then the following steps are followed.

n=p × q

1.

Calculate:

2. 3.

Calculate : ɸ(n)=(p-1)(q-1) Select : e such that 1