Flashindo Academy
Selamat datang di Flashindo Academy, akademi pembuat Flash :wave:
Di sini Anda bisa berbagi proyek/karya Flash-mu dan lain-lain disini :)

Ayo langsung join :D dan akun langsung aktif lho.. :-


Akademi Pembuat Flash
 
HomeTata TertibFAQSearchMemberlistUsergroupsRegisterLog in

Share | 
 

 [GML] RSA Algorithm

View previous topic View next topic Go down 
AuthorMessage
ListRA-92
The Headmaster
avatar

Posts : 93
Cash : 394
Appreciations : 0
Location : antara ada dan tiada~ :-
Jenjang Pendidikan : Kuliah
Join date : 2010-10-15
Status : ADT Listra Linier Berkait :hammer:

PostSubject: [GML] RSA Algorithm   Wed Oct 27, 2010 12:23 pm

Overview:
 

Script: modX
Code:
//modX(a,b,p) : power(a,b) mod p
if(argument1<=2){
    return power(argument0,argument1) mod argument2;
}else if(argument1 mod 2==0){
    return (modX(argument0,argument1/2,argument2)*modX(argument0,argument1/2,argument2)) mod argument2
}else{
    return (modX(argument0,argument1-1,argument2)*modX(argument0,1,argument2)) mod argument2
}

Script: generatePublicKeys
Code:
//generatePublicKeys(e)
//where e is a public key that is relatively prime to m
a=23
b=11
global.n=a*b
global.m=(a-1)*(b-1)
global.e=argument0
k=1
while((1+k*global.m) mod global.e<>0){
    k+=1
}
global.d=(1+k*global.m)/global.e

Script: encrypt
Code:
//encrypt(input_file,output_file)
fileid=file_bin_open(argument0,0)
fileido=file_bin_open(argument1,1)
file_bin_rewrite(fileido)
if(file_bin_size(fileid) mod 2 !=0){
    ba=file_bin_read_byte(fileid)
    file_bin_write_byte(fileido,~ba)
}
do{
    ba=file_bin_read_byte(fileid)
    bb=file_bin_read_byte(fileid)
    bc=ba mod 16
    ba=(ba div 16)*16+bb div 16
    bb=bc*16+bb mod 16
    ba=modX(ba,global.e,global.n)
    bb=modX(bb,global.e,global.n)
    file_bin_write_byte(fileido,ba)
    file_bin_write_byte(fileido,bb)
}until (file_bin_position(fileid)>file_bin_size(fileid)-1)
file_bin_close(fileid)
file_bin_close(fileido)

Script: decrypt
Code:
//decrypt(input_file,output_file)
fileid=file_bin_open(argument0,0)
fileido=file_bin_open(argument1,1)
file_bin_rewrite(fileido)
if(file_bin_size(fileid) mod 2 !=0){
    ba=file_bin_read_byte(fileid)
    file_bin_write_byte(fileido,~ba)
}
do{
    ba=file_bin_read_byte(fileid)
    bb=file_bin_read_byte(fileid)
    ba=modX(ba,global.d,global.n)
    bb=modX(bb,global.d,global.n)
    bc=ba mod 16
    ba=(ba div 16)*16+bb div 16
    bb=bc*16+bb mod 16
    file_bin_write_byte(fileido,ba)
    file_bin_write_byte(fileido,bb)
}until (file_bin_position(fileid)>file_bin_size(fileid)-1)
file_bin_close(fileid)
file_bin_close(fileido)

Fungsi: mengenkripsi & mendekripsi data ke/dari suatu file input, termasuk utk save game & load game

Cara pemasangan:
- Buat empat script baru, kasi nama modX, generatePublicKeys, encrypt dan decrypt
- Copas masing-masing bagian code di atas ke masing2 script tersebut
- Implementasikan script-script tersebut (kecuali modX) ke action Execute a piece of code seperti contoh di berikut ini (tergantung penggunaan file). Untuk fungsi generatePublicKeys, masukkan suatu nilai kunci publik e dengan syarat e harus relatif prima terhadap m (FPB dari e dan m sama dengan 1).

Implementasi
Contoh:
Misalkan sebuah file terenkripsi bernama f.txt didekripsi dengan file keluaran bernama g.txt, dan isi file g.txt akan ditampung dalam string ss (yang nantinya ditampilkan). Setelah selesai, g.txt akan dihapus untuk menjaga kerahasiaan. Maka di bagian actions tambahkan action Execute a piece of code, dan isi dengan kode sebagai berikut:
Code:
generatePublicKeys(19)
//if(file_exists("e.txt"))encrypt("e.txt","f.txt")
decrypt("f.txt","g.txt")
ss=""
fileid=file_bin_open("g.txt",0)
do{
    ba=file_bin_read_byte(fileid)
    ss+=chr(ba)
}until (file_bin_position(fileid)>file_bin_size(fileid)-1)
file_bin_close(fileid)
file_delete("g.txt")
Di sini kita gunakan kunci public e=19. Sebagai langkah awal, kita buat enkripsi dari file teks yang bernama e.txt, dengan menghilangkan komen pada kode di atas (baris kedua).

Guarantee: Dijamin 99,9% aman dan super too difficult to hack!!! XD

Created by: Bunga Tepi Jalan

Credits
- http://en.wikipedia.org/wiki/RSA
- http://www.givemethecode.com

NB: Lihat konsep dan prinsip Algoritma RSA di: http://flashindo.forumotion.net/programming-f13/programming-cryptography-rsa-algorithm-t12.htm :kabur:
Back to top Go down
View user profile http://flashindo.forumotion.net
 
[GML] RSA Algorithm
View previous topic View next topic Back to top 
Page 1 of 1

Permissions in this forum:You cannot reply to topics in this forum
Flashindo Academy :: Education Class :: Programming :: Scripts Lounge-
Jump to: