Stsn6's Weblog

Akan Selalu Memberikan Yang Terbaik Untuk Negara

coba posting!!! selengkapnya di andikahasditama.blogspot.com

Key Generating dengan Memanfaatkan Data Hasil Pengukuran Gempa

oleh

Maulana Andika Hasditama

Bogor

Abstraksi

Persandian atau kriptografi sangat erat hubungannya dengan keamanan ancaman informasi. Bagaimana suatu sistem mengamankan suatu berita agar terhindar dari ancaman lawan, bergantung pada kekuatan sistem sandi yang digunakan. Kuatnya sistem sandi berkaitan dengan tingkat keacakan kunci untuk menyandi. Semakain acak kunci sistem sandi, maka semakin sulit pula bagi kriptanalis untuk menganalisa atau memecahkan suatu sistem sandi.

Seismograf adalah alat untuk mencatat gerakan tanah dan mengukur besarnya suatu gempa. Besarnya intensitas atau kekuatan gempa bumi diukur, dan dihasilkan data yang berupa grafik dinamakan seismogram. Data hasil pengukuran gempa yang berupa data analog ini, secara teori bersifat acak dan tidak dapat diramalkan komposisinya karena berasal dari natural source.

Oleh karena itu, penulis mempunyai pemikiran umtuk memanfaatkan data hasil pengukuran gempa bumi dari seismograf agar data analog yang ada dapat diubah kedalam data digital yang nantinya akan diaplikasikan kedalam proses pembangkitan kunci dalam suatu sistem sandi, yang berguna dalam penerapan persandian.

Iklan

Desember 19, 2008 Posted by | Uncategorized | Tinggalkan komentar

RC4 by Rani Diansari,Mahful Hudhadan Magdalena C

penyempurnaan dari yang sebelumnya RC4 menggunakan Operasi file, maaf Baru setelah UAS bisa diposting akan ada perbaikan-perbaikan lainnya…

#include<stdio.h>
#include<conio.h>
#include<ctype.h>
#include<string.h>
#include<alloc.h>
#include<dos.h>

#define ENTER ‘\r’

int xbox_pertama[256];
int xbox_kedua[256];
int initialkey[11];
unsigned char plaintext[7], ciphertext[7], kosong, key;
int a,b,c,d,i;

void sbox_pertama(void)
{
for(i=0;i<=255;i++)
xbox_pertama[i]=i;
}

void sbox_kedua(void)
{

printf(” Masukkan initial Key Anda : “);
gets(initialkey);

b=strlen(initialkey);
for(i=0;i<=255;i++)
{
xbox_kedua[i]=initialkey[i%b];
}
}

void kunci(void)
{
char OLD[7];
FILE *pf1;

printf(”\n\n Nama File untuk menyimpan xbox_pertama : “);
gets(OLD);

pf1=fopen(OLD,”a+”);

b=0;
for(a=0;a<=255;a++)
{
b=(b+xbox_pertama[a]+xbox_kedua[a])%256;
kosong=xbox_pertama[a];
xbox_pertama[a]=xbox_pertama[b];
xbox_pertama[b]=kosong;
}

for(a=0;a<=255;a++)
{
putc(xbox_pertama[a],pf1);
putc(’ ‘,pf1);
}

for(a=0;a<256;a++)
{
printf(”%4d”,xbox_pertama[a]);
if((a+1)%16==0) {printf(”\n”);}
}

fclose(pf1);

}

void process(void)
{
a=0;
b=0;

printf(”\n\n Masukkan plaintext : “);
gets(”plaintext”);

for(c=0;c<6;c++)
{
a=(a+1)%256;
b=(b+xbox_pertama[a])%256;
kosong=xbox_pertama[a];
xbox_pertama[a]=xbox_pertama[b];
xbox_pertama[b]=kosong;
d=(xbox_pertama[a]+xbox_pertama[b])%256;
key=xbox_pertama[d];
ciphertext[c]=plaintext[c]^key;
printf(”\n %c -> %c”,plaintext[c],ciphertext[c]);
}

printf(”\n\n ciphertext : “);
for(a=0;a<6;a++)
{
printf(”%c “,ciphertext [a]);
}

}

main()
{
int x,y,i,j,k,pilops;
char c,kar,password[10],p[9]=”linklist”;

clrscr();

puts(””);
puts(” *************************************”);
puts(” * RC4 dengan Operasi File *”);
puts(” * Rani Diansari Magdalena C dan Mahful Hudha *”);
puts(” * *”);
puts(” *  *”);
puts(” * *”);
puts(” *************************************”);
printf(”\n\n”);

c=’\xFE’;
awal:
printf(” LOGIN :\n\n”);
printf(” MASUKKAN PASSWORD : “);
for(i=0;i<10;i++)
{
password[i]=getch();
putchar(’*’);
if(password[i]==ENTER)
{password[i]=”; break;}
}

if(strcmp(p,password)==0) {printf(”\n\n\n LOADING\n\n “);
printf(” “);
for(i=0;i<3;i++)
{
sleep(1);
printf(”%c”,c);
}
clrscr();
printf(”\n\n”);
goto proses;
}

else {printf(”\n\n Password Anda Salah!!!\n”);
printf(”\n Ulangi LOGIN ? ( Y / T) “); kar=getche();
if(kar==’Y’||kar==’y’) {printf(”\n\n\n”); goto awal;}
if(kar==’T’||kar==’t’) goto selesai;
}

proses:
sbox_pertama();
sbox_kedua();
kunci();
process();

printf(”\n Ulangi Operasi LINK LIST ? ( Y / T) “); kar=getche();

if(kar==’Y’||kar==’y’) {printf(”\n\n\n”); goto proses;}
else goto selesai;

selesai:
getch();
}

Juli 28, 2008 Posted by | Uncategorized | Tinggalkan komentar

Sayekti_Budiani I-MP

Asalammualaikum pak’Amri…

pak saya sudah mencoba mengerjakan kembali tugas ini. Namun sepertinya masih banyak yang perlu direvisi, masih ada erornya. . . .karena UAS tinggal beberapa hari lagi, jadi langsung saya posting,,insyaAllah setelah UAS saya coba perbaiki lagi.

merci beoucoup  pak amri, maaf sudah banyak merepotkan.

Juli 19, 2008 Posted by | Uncategorized | Tinggalkan komentar

Tugasnya Sayekti_Budiani I-MP

#include<stdio.h>
main()
{
int a,b,c;
a[5][5]=[0,0][0,1][0,2][0,3][0,4]
[1,0][1,1][1,2][1,3][1,4]
[2,0][2,1][2,2][2,3][2,4]
[3,0][3,1][3,2][3,3][3,4]
[4,0][4,1][4,2][4,3][4,4]
clrscr();
printf(“masukan 25 teks berita=”);
for(b=0;b<=4;b++)
a[0][b]=getch();
for(b=4;b>=0,b–)
a[1][b]=getch();
for(b=0;b<=4;b++)
a[2][b]=getch();
for(b=4;b>=0;b–)
a[3][b]=getch();
for(b=0;b<=4;b++)
a[4][b]=getch();
printf(“matriks yang anda input=”);
for(b=0;b<=4;b++)
{
for(c=0;c<=4;c++)
printf(“%c”,a[b][c];
}

Juli 19, 2008 Posted by | Uncategorized | Tinggalkan komentar

SeMaN9adH bwat UAS!!

Ayo0o0…abang2, mbak2, sodaraQ seabangsa setanah air…!!

SEMANGAT buat UASnya y..

Jangan sampai menyesal di kemudian hari…chayo0o0o!!

*/Terima kasih pada Pak Amri buat numpang ngisi komentar..dan sudah membuat blog untuk kami,*/

by STSN6_SK

Juli 19, 2008 Posted by | Uncategorized | | Tinggalkan komentar

terima kasih telah menunggu Pak…by Maulana & Indra

Alhamdulillah Pak…

Tugas yang dipercayakan Bpk pada kami, yaitu program sandi PALISADE, telah kami selesaikan.

Adapun Source codenya sudah kami posting di blog STSN6 ini.

Seperti rancangan program palisade yang dulu kami posting. inputan teks sandinya:

INDONESIA MERDEKA DAHULU

dengan Lajur(Lj) = 3

semoga dapat bermanfaat, dan kami berharap terus berkarya untuk STSN ini…

terima kasih atas kebijaksanaanya…

Juli 11, 2008 Posted by | Uncategorized | 1 Komentar

final result of making PALISADE-by Maulana Andika & Indra Adi

#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<math.h>
main ()
{
char A[100];
char S[100]=”SELAMAT DATANG DI PROGRAM PALISADE”;
char B[100];
char K[100];
char D[100][100];
int i,j,k,n,lj,lh,p,N;
clrscr();
for(i=0;i<strlen(S);i++)
{ printf(“%c”,S[i]);
delay(50000);
}
printf(“\nMasukan Teks Terang :”);
gets(A);
printf(“\n”);
printf(“masukan lj :”);
scanf(“%d”,&lj);
n=strlen(A);
strcpy(B,A);
lh=n/lj;
p=(lh+1)/2;

for(i=0;i<(lh*p);i++)
{
A[(p*2)-1]=’@’;
A[(p*2)+i]=B[(p*2)+i-1];
}

for(i=0;i<(lh*p);i++)
{
A[(p*4)-1]=’@’;
A[(p*4)+i]=B[(p*4)+i-2];
}

for(i=0;i<(lh*p);i++)
{
A[(p*6)-1]=’@’;
A[(p*6)+i]=B[(p*6)+i-3];
}
/* A[(p*2)-1]=’@’; */
/* A[(p*4)-1]=’@’; */
/* A[(p*4)+i]=B[(p*4)+i-3]; */

/* A[(p*6)+i]=B[(p*6)+i-1];
A[(p*6)-1]=’@’; */

for(i=0;i<(lh*p);i++)
{
if(i>(n-2+((lh-1)/2)))
A[i+1]=’@’;
}

for(i=0;i<(lh*p);i++)
{
printf(“%c”,A[i]);
}
printf(“\n\n”);
for(i=0;i<(lh*p);i++)
{
for(j=0;j<p;j++)
{
if(i%2==0)
{
D[i][j]=A[(p*i)+j];
}
if(i%2!=0)
{
if(j<p-1)
{
D[i][j]=A[(p*i)+(p-2)-j];
}
else {

D[i][j]=A[(p*i)+(p-1)];
}
}
}
}
for(i=0;i<lh;i++)
{
for(j=0;j<p;j++)
{
printf(“%c”,D[i][j]);
}
printf(“\n”);
}
N=0;
for(i=0;i<p;i++)
{
for(j=0;j<lh;j++)
{
K[N]=D[j][(p-1)-i];
N++;
}
}
printf(“\nTeks Sandinya adalah :”);
for(i=0;i<(lh*p);i++)
{
if(K[i]!=’@’)
printf(“%c”,K[i]);
}

getch();
}



Juli 11, 2008 Posted by | Uncategorized | 1 Komentar

Tugas Rc4 Magdalena,Mahful,Rani Diansari Tk.1 Mp

#include “stdio.h”
#include “conio.h”
main()

{

unsigned long

i,j,l,n,s[256],temp[1],output[256],cipher[256];
char key[256],plain[2048];

clrscr();

printf(“masukkan key initial=”);
gets(key);
n=strlen(key);
printf(“masukkan plain text=”);
gets(plain);
for (i=0;i<=255;i++)

{
s[i]=i;
}
j=0;
for (i=0;i<=256;i++)
{
j=(j+s[i]+key[i%n])%256;
temp[0]=s[i];
s[i]=s[j];
s[j]=temp[0];
}
printf(” RKG RC4″);

l=0;i=0;j=0;
while(l<=255)
{
i=(i+1)%256;
j=((j+s[i])%256);
temp[0]=s[i];
s[i]=s[j];
s[i]=temp[0];
printf(“%X”,output[l]=s[(s[i]+s[j])%256]);
l++;
}
printf(“\n========ciphertext========\n”);
for(i=0;i<strlen(plain);i++)
{
printf(“%x”,cipher[i]=output[i%256]^plain[i]);
}getch();
}


Juli 2, 2008 Posted by | Uncategorized | 1 Komentar

operasi file by Sayekti Budiani 1_mp

OPERASI FILE

MEMBUKA FILE

Suatu file dalam disk harus dalam keadaan terbuka terlebih dahulu baru dapat diakses.

FILE *fopen(const char *filename, const char *mode)

Kembalian dari fungsi fopen adalah nilai pointer file atau NULL jika pembukaan file gagal.

Filename adalah nama file Dengan parameter mode adalah:

r – open for reading

w – open for writing (file need not exist)

a – open for appending (file need not exist)

r+ – open for reading and writing, start at beginning

w+ – open for reading and writing (overwrite file)

a+ – open for reading and writing (append if file exists)

– File dapat dibuka sebagai file teks (t) atau file biner (b)

– File teks menggunakan parameter tambahan menjadi rt, wt, at, r+t, w+t, dan a+t

– File biner menggunakan parameter tambahan menjadi rb, wb, ab, r+b, w+b, dan a+b

– Defaultnya adalah mode teks (t)

Contoh penggunaan:

FILE *fp;

fp=fopen(”c:\\test.txt”, “r”);

if (fp==NULL) printf(“Error, file tidak dapat dibuka!”);

MENUTUP FILE

int fclose(FILE *a_file);

int fcloseall(void);

Nilai kembalian int akan berisi 0 jika berhasil atau -1 (EOF) jika gagal!

fcloseall akan menutup seluruh stream yang aktif kecuali stdin, stdout,

stdprn dan stdaux.

Pada Windows, kembalian dari nilai ini tidak terlalu diperlukan karena di

Windows tidak diperlukan untuk mengetahui status suatu program.

Contoh penggunaan:

FILE *fp;

fp=fopen(”c:\\test.txt”, “r”);

if (fp==NULL) printf(“Error, file tidak dapat dibuka!”);

fclose(fp);

Untuk menulis ke file dalam format tertentu:

int fprintf(fp, “Testing…\n”);

jika berhasil akan dikembalikan jumlah byte yang dituliskan sedangkan jika gagal dikembalikan EOF

Untuk membaca dari file dalam format field tertentu:

int fscanf(fp, “Testing…\n”);

jika berhasil akan dikembalikan jumlah field yang dibaca sedangkan jika gagal dikembalikan EOF

Untuk menulis karakter ke file teks:

int fputc( int c, FILE *fp );

jika berhasil akan dikembalikan karakter c sedangkan jika gagal dikembalikan EOF

Untuk membaca file teks perkarakter:

int fgetc (FILE *fp);

jika berhasil akan dikembalikan karakter c sedangkan jika gagal dikembalikan EOF

Untuk meletakkan nilai integer ke file:

int putw(int w, FILE *fp);

jika berhasil akan dikembalikan integer w sedangkan jika gagal dikembalikan EOF

Untuk membaca nilai integer:

int getw(FILE *fp);

jika berhasil akan dikembalikan integer w sedangkan jika gagal dikembalikan EOF

Untuk menulis string ke file tanpa ada karakter NULL dan newline:

int fputs(const char *s,FILE *fp);

jika berhasil akan dikembalikan string s sedangkan jika gagal dikembalikan EOF

Untuk membaca string dari file sebanyak n karakter atau bertemu karakter ‘\n’:

char *fgets(const char *s,int n,FILE *fp);

jika berhasil akan dikembalikan string s sedangkan jika gagal dikembalikan EOF

Untuk mengetahui akhir sebuah file stream:

int feof(FILE *fp);

jika berhasil akan dikembalikan nilai integer selain 0.

Contoh – contoh:

#include <stdio.h>

int main()

{

char ifilename[] = “c:/a.txt”;

char ofilename[] = “c:/b.txt”;

char name[30];

int idNum;

FILE *ofp, *ifp;

/* Open file for input */

ifp = fopen(ifilename,”r”);

/* Read data */

fscanf(ifp,”%s %d”,name,&idNum);

/* Open file for output */

ofp = fopen(ofilename,”w”);

/* Write out data */

fprintf(ofp,”%d %s\n”,idNum, name);

/* Close Files */

fclose(ifp);

fclose(ofp);

return 0;

}

Juli 2, 2008 Posted by | Uncategorized | 1 Komentar

Tugas RC4 Magdalena Christine,Mahful H. ,Rani Diansari.(tk.1 MP)

#include “stdio.h”

char *EnkripDekrip(const char *pText, int iTextLen, const char *pKey);
void swapints(int *array, int ndx1, int ndx2);

int main()
{
char xbox[256], passwd[25], *pEnkripsi, *pDekripsi, *pkar;
int i, iLen;
clrscr();
for(;;)
{

printf(“\n                +—-   APLIKASI ENKRIPSI – DEKRIPSI RC4   —-+”);
printf(“\n                |                                              | “);
printf(“\n                |By :                                          | “);
printf(“\n                |      1. Magdalena Christine                  | “);
printf(“\n                |      2. Mahful Hudha S.                      | “);
printf(“\n                |      3. Rani Diansari                        | “);
printf(“\n                |     ( Tingkat 1 Manajemen Persandian)        | “);
printf(“\n                + ——————————————– + “);

printf(“\n\n\nPlease insert your message (press enter to out from this program): “);
fgets(xbox, sizeof(xbox), stdin);
for (i = strlen(xbox) – 1; (i >= 0) && (xbox[i] == 10); i–)
xbox[i] = 0;
if (!xbox[0])
break;
printf(“\nKunci: “);
fgets(passwd, sizeof(passwd), stdin);
for (i = strlen(passwd) – 1; (i >= 0) && (passwd[i] == 10); i–)
passwd[i] = 0;
if (!passwd[0])
break;
iLen = strlen(xbox);
pEnkripsi = EnkripDekrip(xbox, iLen, passwd);
printf(“\nHasil Enkripsi:\n”);
for (pkar = pEnkripsi, i=0; i < iLen; pkar++, i++)
{
if (!(i % 20))
printf(“\n”);
printf(“%c “, (unsigned char)*pkar);
}
printf(“\n”);

pDekripsi = EnkripDekrip(pEnkripsi, iLen, passwd);
pDekripsi[iLen] = 0;
printf(“\nDecrypted text: %s”, pDekripsi);

}

}

char *EnkripDekrip(const char *pText, int iTextLen, const char *pKey)

{
char *cipher;
int a, b, i=0, j=0, k;
int ilen;
int sbox[256];
int key[256];

ilen = strlen(pKey);

for (a=0; a < 256; a++)
{
key[a] = pKey[a % ilen];
sbox[a] = a;
}

for (a=0, b=0; a < 256; a++)
{
b = (b + sbox[a] + key[a]) % 256;
swapints(sbox, a, b);
}

cipher = (char *)malloc(iTextLen);

for (a=0; a < iTextLen; a++)
{
i = (i + 1) % 256;
j = (j + sbox[i]) % 256;
swapints(sbox, i, j);
k = sbox[(sbox[i] + sbox[j]) % 256];
cipher[a] = pText[a] ^ k;
}
return cipher;
}

void swapints(int *block, int ndx1, int ndx2)
{
int kosong = block[ndx1];
block[ndx1] = block[ndx2];
block[ndx2] = kosong;
}


Juni 27, 2008 Posted by | Uncategorized | Tinggalkan komentar