Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 14

TRNG I HC BCH KHOA H NI VIN IN T-VIN THNG

BO CO N 3
TI: Nghin cu v thc hin cc phng php bo mt khi d liu dng thut ton AES
GIO VIN HNG DN: TS PHM VIT THNH

SINH VIN THC HIN: TRN VN CHIU L HU KHANG NGUYN HNG THI SHSV:20090282 SHSV:20093493 SHSV:20096357 T 12-K54 T12-K54 T10-K54

CH BO CO LN 5:Thc Hin M Ha V Gii M File Text.


Em Cho thy ! Tun va qua nhm em thc hin vit hm thc hin m ha file txt.V hm m ha 1 block 4x4 chng em vit t trc nn trong tun ny nhm em thc hin vit cc hm sau: Hm c file text vo. Hm ghi file txt. Hm chn tng chui 16 k t t 1 chui. Hm chuyn t String sang Hexa. Hm chuyn t Hexa sang string. Hm m ha text. Hm gii m text.

1. Hm c File Text:
Hm ny c nhim v c ni dung c ghi trong 1 file txt. Vi u vo l ng dn ca file txt v u ra l 1 chui cha ni dung. // Phuong Thuc Doc File txt; public static String DocFile(String path) throws FileNotFoundException, IOException{ FileReader fr=new FileReader(path); BufferedReader br =new BufferedReader(fr); String str=""; String line = ""; while((line=br.readLine())!=null) { str=str+line; //luu dan vao chuoi str;

} br.close(); fr.close(); //System.out.println(str); return str; } Path cha ng dn ca file txt cn c v str la chui cha ni dung.str chnh l gi tr tr v ca hm ny. Kt qu:

2. Hm Ghi File Text:


//Phuong Thuc Ghi File txt; public static void GhiFile(String str,String path) throws FileNotFoundException, IOException{ FileOutputStream fos =new FileOutputStream(path,false); PrintWriter pw = new PrintWriter(fos); pw.println(str); pw.close();

fos.flush(); fos.close(); } Hm ny c tham s u vo l 2 chui str v path . Str cha ni dung chui cn ghi vo file text, path cha ng dn cho file text cn ghi vo. Nu file nay cha tn ti th s c to mi.

3. Hm Chn Chui 16 K T T 1 Chui u Vo.


// Phuong Thuc chon tung chuoi 16 ki tu tu chuoi dau vao co do dai bat ki; public static String chose_array_string(String input, int i){ String text16 =""; int leng_text,sochuoicon,a,delta; leng_text = input.length(); a=leng_text%16; sochuoicon=(a==0)?(leng_text/16):((leng_text/16)+1); delta =16-a;//chua so ki tu phai cho them khi thieu; if(a==0) { text16=input.substring(i*16, i*16+16); } if((a!=0)&&(i<sochuoicon-1)){ text16=input.substring(i*16, i*16+16); } if((a!=0)&&(i==sochuoicon-1)){ text16=input.substring(i*16); int j;

for(j=1;j<=delta;j++){ text16=text16+" "; // text16=text16+'!'; } } // System.out.println("a="+a+" sochuoicon="+sochuoicon+"delta="+delta); return text16; } Hm ny c 2 tham s u vo l input v i. input l chui u vo c di bt k , i l ch s ca chui 16 k t m ta mun ly ra t chui u vo.

y dng trn l chui u vo, dng di l chui 16 k t th 2 trong chui u vo .Nu chui c chn khng 16 k t th s c b thm cc k t space cho 16 k t.

4. Hm Chuyn T String Sang Hexa.


//Phuong Thuc chuyen tu String sang Hexa;

public static int[] string_to_hexa(String str) { int[] cipher=new int[str.length()]; //mang chua hexa; int i; for(i=0;i<str.length();i++){ char ch=str.charAt(i); cipher[i]=(int)ch; // System.out.println((int)'A'); // System.out.println((char)65); } return cipher; } Hm c tham s u vo l 1 chui str v gi tr tr v u ra l 1 mng int[] cipher cha m hexa ca cc k t u vo. Kt qu:

5. Hm Chuyn t Hexa Sang String.


// Phuong Thuc chuyen Tu Hexa Sang String

public static String hexa_to_string(int[] cipher) { String str =""; int i; for(i=0;i<cipher.length;i++){ // short value; // value=(short)cipher[i]; //char ch=(char)value; char ch=(char)cipher[i]; str=str+ch; //System.out.print(ch); // System.out.println((int)'A'); // System.out.println((char)65); } return str; } Hm c tham s u vo l 1 mng int[] cipher cha gi tr hexa ca cc k t . Gi tr tr v u ra l 1 chui k t. Kt qu:

6. Hm M Ha V Gii M.
// Phuong thuc thuc hien chuc nang ma hoa text; public static String MaHoaText(String str_key, String str_input){ String str_input_block,str_output=""; int[][] input_block =new int[4][4]; int[] input_key=new int[16]; int i,sochuoi_16,n,a,leng_text; leng_text=str_input.length(); a=leng_text%16; sochuoi_16=(a==0)?(leng_text/16):((leng_text/16)+1); // thuc hien ma hoa tung chuoi con; for(n=0;n<=sochuoi_16-1;n++){ str_input_block = Chose_Text.chose_array_string(str_input,n); //lay chuoi thu i tu text dau vao; int[] input_array =new int[16]; //chuyen chuoi sang hexa; input_array = String_to_Hexa.string_to_hexa(str_input_block); //chuyen sang hexa input_key = String_to_Hexa.string_to_hexa(str_key); //day la khoa dau vao de ma khoa; // chuyen tu mnag 1 chieu sang block 4x4 day la dau vao de ma hoa; for(i=0;i<=3;i++) { input_block[0][i]=input_array[i*4]; input_block[1][i]=input_array[i*4+1]; input_block[2][i]=input_array[i*4+2]; input_block[3][i]=input_array[i*4+3]; } // thuc hien ma hoa tung block 4x4;

Main_Cipher.cipher(input_block, input_key); //chuyen tu block 4x4 sang mang 1 chieu; for(i=0;i<=15;i++){ //code chuyen; input_array[i]=input_block[i%4][i/4]; } //chuyen tu so sang chuoi; str_input_block = Hexa_to_String.hexa_to_string(input_array); str_output=str_output + str_input_block; } return str_output; } Hm m ha c tham s u vo l 2 chui str_key v str_input . Str_key l chui cha key dng cho thut ton AES .Str_input l chui cn m ha .Gi tr tr v ca hm ny l 1 chui str_output (y l chui c m ha). Kt qu:

// Phuong thuc giai ma text; public static String GiaiMaText(String str_key,String str_input ){ String str_input_block,str_output=""; int[][] input_block =new int[4][4]; int[] input_key=new int[16]; int i,sochuoi_16,n,a,leng_text; leng_text=str_input.length(); a=leng_text%16; sochuoi_16=(a==0)?(leng_text/16):((leng_text/16)+1); // thuc hien ma hoa tung chuoi con; for(n=0;n<=sochuoi_16-1;n++){ str_input_block = Chose_Text.chose_array_string(str_input,n); //lay chuoi thu i tu text dau vao; int[] input_array =new int[16]; //chuyen chuoi sang hexa; input_array = String_to_Hexa.string_to_hexa(str_input_block); //chuyen sang hexa input_key = String_to_Hexa.string_to_hexa(str_key); //day la khoa dau vao de ma khoa; // chuyen tu mnag 1 chieu sang block 4x4 day la dau vao de ma hoa; for(i=0;i<=3;i++) { input_block[0][i]=input_array[i*4]; input_block[1][i]=input_array[i*4+1]; input_block[2][i]=input_array[i*4+2]; input_block[3][i]=input_array[i*4+3]; } // thuc hien giai ma block 4x4; Main_Inverse_Cipher.Inverse_Cipher(input_block, input_key);

//chuyen tu block 4x4 sang mang 1 chieu; for(i=0;i<=15;i++){ //code chuyen; input_array[i]=input_block[i%4][i/4]; } //chuyen tu so sang chuoi; str_input_block = Hexa_to_String.hexa_to_string(input_array); str_output=str_output + str_input_block; } return str_output; } Hm gii m c tham s u vo l 2 chui str_key v str_input . Str_key l chui cha key dng cho thut ton AES .Str_input l chui cn c gii m .Gi tr tr v ca hm ny l 1 chui str_output (y l chui c gii m ). Kt qu:

7.Kt Qu Thc Hin 1 S Trng Hp :


TH1:

Kt qu chnh xc.

TH2:

Kt qu chnh xc;

TH3:

Kt qu chnh xc.

TH4:

Kt qu sai.

TH5:

Kt qu sai.

Nhn Xt:
Em th test 1 s trng hp vi chui u vo khc nhau th vi ni dung chui ngn khong 50 k t th kt qu kh chnh xc.Vi ni dung chui vo di th hay c li sai.Tt c cc trng hp sai u c chung c im chui sau khi m ha c xut hin k t xung dng. Hin ti chng em cng cha tm c chnh xc nguyn nhn gy sai v cch sa li.

You might also like