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
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
Would you like to react to this message? Create an account in a few clicks or log in to continue.
Prodig - Komunitas Proyek Digital

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

 [GM8-GML] RSA Algorithm Resize
 

 [GM8-GML] RSA Algorithm

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

Status : Ngacay :v
Posts : 424
Chips : 7088
Power : 14
Join date : 2010-09-22
Location : Antara ada dan tiada :-
Badge : [GM8-GML] RSA Algorithm Visual13 [GM8-GML] RSA Algorithm Ntitle10[GM8-GML] RSA Algorithm Visualart20112

[GM8-GML] RSA Algorithm _
PostSubject: [GM8-GML] RSA Algorithm   
[GM8-GML] RSA Algorithm Icon_minitimeSun 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: https://prodig.forumotion.net/programming-f28/programming-cryptography-rsa-algorithm-t74.htm :kabur:



Back to top Go down
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: