RSA Algorithm Project: Design Specifications and Implementation, Papers of Cryptography and System Security

The design specifications of a project to develop an educational program demonstrating rsa public key encryption/decryption and rsa signature with small key lengths for a cryptographic laboratory. The application is designed to offer users a user-friendly interface, flexibility in data input/output, and the ability to visualize main calculations in the crypto-algorithm. It also includes main calculation utilities needed for rsa encryption/decryption and rsa signature.

Typology: Papers

Pre 2010

Uploaded on 02/12/2009

koofers-user-l6h
koofers-user-l6h ๐Ÿ‡บ๐Ÿ‡ธ

3

(1)

8 documents

1 / 8

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
E
Ed
du
uc
ca
at
ti
io
on
na
al
l
S
So
of
ft
tw
wa
ar
re
e
F
Fo
or
r
A
A
C
Cr
ry
yp
pt
to
og
gr
ra
ap
ph
hi
ic
c
L
La
ab
bo
or
ra
at
to
or
ry
y
(Specification โ€“ Version 1)
Luu Pham โ€“ [email protected]
GMU โ€“ Nov. 2003
pf3
pf4
pf5
pf8

Partial preview of the text

Download RSA Algorithm Project: Design Specifications and Implementation and more Papers Cryptography and System Security in PDF only on Docsity!

EdEduuccaattiioonnaall SSooffttwwaarree

Fo Forr AA CCrryyppttooggrraapphhiicc LLaabboorraattoorryy

(Specification โ€“ Version 1)

Luu Pham โ€“ [email protected]

GMU โ€“ Nov. 2003

Table of Contents

1. ABSTRACT

2. INTRODUCTION

3. DESIGN SPECIFICATIONS

i. Languages, compiler, and platform to the run application

ii. Range of variables for arithmetic operations

iii. Main functions

iv. Inputs/Outputs

4. TESTING AND SIMULATION PLAN

5. LITERATURE

6. PROJECT SCHEDULE

3. DESIGN SPECIFICATIONS

i. Languages, compiler, and flat form to run the application

a. Languages: Delphi 6 and Assembly are used to implement the application. b. Compiler: Delphi 6 - Borland.

c. Platform:

Since our purpose is to design an application with good performance, reliability, and user friendly user interface; therefore, Windows is the main platform for our application.

ii. Range of variables for arithmetic operations

The range of variables for arithmetic operations in the program is 64-bit integer, whose range is -2^63 and 2^63. 16-bit key length is initially selected to implement the RSA algorithm.

iii. Main functions

a. Main functions needed for Database management:

  • Add: Add new user to the database
  • Delete: Delete a user currently in the database
  • Edit: Edit to revise user information in database
  • Change key: Change key values for a user in the database
  • Search: Search to display all user information currently in the database. b. Main functions for calculation utilities
  • Check prime number: Input: An integer number. Output: Confirmation whether input number is an prime number or not.
  • Multi-Inverse: Find x so that a.x=1 mod N Input: a, N: integer. Output: x so that a.x=1 mod N.
  • GCD: Find GCD(a,b) Input: a, b: integer. Output: GCD(a,b)
  • Congruence: Find x so that a.x=b mod N Input: a, b, N: integer. Output: x so that a.x=b mod N.
  • Left-To-Right Binary Exponential: Find Y=M^E mod N Input: M, E, N: integer. Output: Compute Y=(M^E mod N) by using Left-To-Right Binary Exponential
  • Right-To-Left Binary Exponential: Find Y=M^E mod N Input: M, E, N: integer. Output: Compute Y=(M^E mod N) by using Right-To-Left Binary Exponential c. GetPublicKey: [e,n]=GetpublicKey(IP, PKIDirectoryFile); Input: Either IP Address or Email Address and PKI Directory file. Output: Public key e and n for the desired IP/ email address. d. RSA_Key_Generator: [e,n,d]=fk(p,q) Input: p, q: large prime numbers. Output: Public key [e,n]=fpub(p,q) Private key [d,n]=fprv(p,q) e. MD5 Hash function: h=H(m) Input: Message m: arbitrary length Output: h: 128-bit fixed length h=H(m) f. Encryption: C=fe(M,n,e) Input: Message arbitrary length, public key (e,n) Output: Cipher text C=fe(M,n,e) g. Decryption: M=fd(C,n,d) Input: Cipher text arbitrary length, private key (d,n) Output: Message M=fd(C,n,d) h. Verify Digital Signature: Boolean function b=fv(e,n,Ds) Input: Public key (e,n) Message Digital Signature Ds

[13] William Stallings, Cryptography and Network Security: Principles and Practice, 3rd ed., Prentice Hall, Upper Saddle River, 2003.

[14] K. Jallad, J. Katz, and B. Schneier, Implementation of Chosen-Ciphertext Attacks against PGP and GnuPG, Information Security Conference 2002, Springer- Verlag, 2002.

[15] Canetti, Ran Catherine Meadows, and Paul Syverson, "Environmental Requirements for Authentication Protocols", Proceedings of the International Symposium on Software Security. Springer-Verlag, November 2002 [16] David M. Burton, Elementary Number Theory, International Series in Pure and Applied Mathematics, 3rd. ed., The McGraw-Hill Companies, Inc., 1997

[17] Meadows, Catherine, "What Makes a Cryptographic Protocol Secure? The Evolution of Requirements Specification in Formal Cryptographic Protocol Analysis." Proceedings of ESOP 03, Springer-Verlag, April 2003. [18] Charlie Kaufman, Radia Perlman, and Mike Speciner, Network Security: Private Communication in a Public World, PTR Prentice Hall, Englewood Cliffs, 2002

[19] Ueli Maurer, Some Number-theoretic Conjectures and Their Relation to the Generation of Cryptographic Primes, Cryptography and Coding II, Oxford University Press, 1992.

[20] Ueli Maurer, Fast Generation of Prime Numbers and Secure Public-Key Cryptographic Parameters, Journal of Cryptology, vol. 8, no.3, 1995

[21] Song Y. Yan, Number Theory for Computing, 2nd ed., Springer-Verlag, Berlin, 2002

[22] David M. Burton, Elementary Number Theory, International Series in Pure and Applied Mathematics, 3rd. ed., The McGraw-Hill Companies, Inc., 1997 [23] N. Ferguson and B. Schneier, A Cryptographic Evaluation of IPsec. J. Kelsey, B. Schneier, and D. Wagner, Mod n Cryptanalysis, with Applications Against RC5P and M6, Fast Software Encryption, Sixth International Workshop Proceedings (March 1999), Springer-Verlag, 1999.

ECE 646 โ€“ Cryptography and Computer Network Security

Luu Pham

11/30/

Page 8 of 8

6.^

PROJECT SCHEDULE

Week beginning

Task

09/

10/

10/

10/

10/

11/

11/

11/

11/

12/

12/

12/

Initial Project specification^ Explore and compile referenced sources Analysis sources, select appropriate info.^ First progress report^ Program structure, algorithms design^ Coding, Debugging, and partly testing^ Testing and improving^ Second progress report^ Third progress report^ Final progress report and draft of presentation Final Report and presentation