University of Rwanda
College of Science and Technology
Department of Computer Science
Level 4
Reg.: 217010849
                        Cryptography and network security Assignment
   1) A java program for shift cipher
package shift_cipheredText;
import java.util.*;
public class cipheredText {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int yourNumber, size;
String letters="abcdefghijklmnopqrstuvwxyz";
String yourText, cipheredText="";
System.out.println("Enter the yourText: ");
yourText=sc.nextLine();
System.out.print("Enter the yourNumber: ");
yourNumber = sc.nextInt();
//int k=yourText.length();
//String[] cipheredText=new String[k];
 for(int i=0;i<yourText.length();i++) {
char k = yourText.charAt(i);
letters="abcdefghijklmnopqrstuvwxyz";
 if(Character.isUpperCase(k))
         {
lettres="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
         }
       size = lettres.indexOf(yourText.charAt(i)) + yourNumber;
       if(size > 25){
           size = size % 26;
       }
       if(yourText.charAt(i)==' ')
       {
 cipheredText+=" ";
           continue;
       }
       cipheredText = cipheredText + alphabet.charAt(size);
     }
     System.out.println(cipheredText);
   }
}
2) a php program to imprement shift cipher
<?php
// if encrypt button was clicked
                if (isset($_POST['encrypt']))
                {
                         $code = encrypt($pswd, $code);
                         $error = "Text encrypted successfully!";
                         $color = "#526F35";
                }
               // if decrypt button was clicked
               if (isset($_POST['decrypt']))
               {
                        $code = decrypt($pswd, $code);
                        $error = "Code decrypted successfully!";
                        $color = "#526F35";
               }
// function to encrypt the text given
function encrypt($pswd, $text)
{
        // change key to lowercase for simplicity
        $pswd = strtolower($pswd);
        // intialize variables
        $code = "";
        $ki = 0;
        $kl = strlen($pswd);
        $length = strlen($text);
      // iterate over each line in text
      for ($i = 0; $i < $length; $i++)
      {
               // if the letter is alpha, encrypt it
               if (ctype_alpha($text[$i]))
               {
                        // uppercase
                        if (ctype_upper($text[$i]))
                        {
                                  $text[$i] = chr(((ord($pswd[$ki]) - ord("a") + ord($text[$i]) -
ord("A")) % 26) + ord("A"));
                        }
                      // lowercase
                      else
                      {
                              $text[$i] = chr(((ord($pswd[$ki]) - ord("a") + ord($text[$i]) -
ord("a")) % 26) + ord("a"));
                      }
                       // update the index of key
                       $ki++;
                       if ($ki >= $kl)
                       {
                               $ki = 0;
                       }
               }
       }
       // return the encrypted code
       return $text;
}
// function to decrypt the text given
function decrypt($pswd, $text)
{
        // change key to lowercase for simplicity
        $pswd = strtolower($pswd);
       // intialize variables
       $code = "";
       $ki = 0;
       $kl = strlen($pswd);
       $length = strlen($text);
       // iterate over each line in text
       for ($i = 0; $i < $length; $i++)
       {
                // if the letter is alpha, decrypt it
                if (ctype_alpha($text[$i]))
                {
                         // uppercase
                         if (ctype_upper($text[$i]))
                         {
                                   $x = (ord($text[$i]) - ord("A")) - (ord($pswd[$ki]) - ord("a"));
                               if ($x < 0)
                               {
                                       $x += 26;
                               }
                               $x = $x + ord("A");
                               $text[$i] = chr($x);
                       }
                       // lowercase
                       else
                       {
                               $x = (ord($text[$i]) - ord("a")) - (ord($pswd[$ki]) - ord("a"));
                               if ($x < 0)
                               {
                                        $x += 26;
                               }
                               $x = $x + ord("a");
                               $text[$i] = chr($x);
                       }
                       // update the index of key
                       $ki++;
                       if ($ki >= $kl)
                       {
                               $ki = 0;
                       }
               }
       }
       // return the decrypted text
       return $text;
}
?>
3) a java program that implement brute force attack
package bruteforceattack;
import java.util.Scanner;
public class BruteForceAlgo {
  public static void main(String[] args) {
     Scanner t = new Scanner(System.in);
     int m, j, l, k = 97, key = 0, flag = 0, intex = 0, keyVal;
     String mytext;
     char[] txt = new char[10];
     char[] myText1 = new char[10];
     char temp;
     System.out.println("ENTER PLAIN TEXT");
     p = t.next();
     System.out.println("ENTER KEY VALUE :");
     key = t.nextInt();
     for (m = 0; i < mytext.length(); i++) {
        for (j = 0; j < 26; j++) {
           if (m.charAt(i) == ' ') {
              flag = 0;
              break;
           }
           temp = (char) (j + k);
           if (m.charAt(i) == temp) {
              flag = 1;
              index = j;
              break;
                }
            }
            if (flag == 1) {
                char s = (char) (((index + key) % 26) + 97);
                txt[i] = s;
            }
        }
        System.out.println("ENCRYPTED DATA:");
        for (i = 0; i < p.length(); i++) {
           System.out.print(txt[i]);
        }
        System.out.println("\n" + "DECRYPTION OF DATA USING BRUTE-FORCE ATTACK :");
        key = 1;
        while (key <= 26) {
           for (i = 0; i < m.length(); i++) {
              for (j = 0; j < 26; j++) {
                 if (txt[i] == ' ') {
                    flag = 0;
                    break;
                 }
                 temp = (char) (j + k);
                 if (txt[i] == temp) {
                    flag = 1;
                    index = j;
                    break;
                 }
              }
              keyVal = index - key;
              if (flag == 1 & keyVal > 0) {
                 myText1[i] = (char) ((keyVal % 26) + 97);
                } else if (flag == 1) {
                   p1[i] = (char) ((26 + keyVal) + 97);
                }
            }
            System.out.print("\n" + "DECRYPTED DATA:");
            for (i = 0; i < m.length(); i++) {
               System.out.print(myText1[i]);
            }
            key++;
        }
    }
}