Prodig - Komunitas Proyek Digital
Selamat datang di ProDig!
Di sini adalah tempat untuk berbagi proyek (game, seni, program, dan situs).
Di sini Anda juga bisa mendapatkan hal lainnya seperti permainan, berbagi karya, ilmu pengetahuan, kesenangan, dan sebagainya. :)

Ayo daftar lalu langsung login tanpa perlu konfirmasi email sama sekali :D!
Prodig - Komunitas Proyek Digital

Tempat untuk berbagi proyek digital : Situs, Game, Seni, Program
 
CalendarPortalHomeRulesSearchFAQMemberlistUsergroupsRegisterLog in
Welcome to the ProDig, Guest!

 
 

 [GM8-GML] RSA Algorithm

View previous topic View next topic Go down 
AuthorMessage
Alissa
Ngacay Princess


Status : Ngacay :v
Posts : 424
Chips : 4171
Power : 14
Join date : 2010-09-22
Location : Antara ada dan tiada :-
Badge :

PostSubject: [GM8-GML] RSA Algorithm   
Sun Oct 03, 2010 2:31 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://prodig.forumotion.net/programming-f28/programming-cryptography-rsa-algorithm-t74.htm :kabur:





SIGGY KOSONG
Back to top Go down
View user profile https://bungatepijalan.wordpress.com
 

[GM8-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
Prodig - Komunitas Proyek Digital  :: Education Chamber :: Programming :: GML-
Jump to: