Gå til innhold

[LØST] RSA krypteringsmetode feiler "random", jeg ser ikke feilen.


Anbefalte innlegg

Hei!

 

På skolen har jeg fått følgende oppgave:

http://www-rohan.sdsu.edu/~stremler/CS574/...nments/AS1.html

 

Det oppgaven går ut på, er å lage forskjellige krypteringsmetoder uten bruk av Java sine innebygde krypteringsklasser.

 

Problemet mitt er at rsa krypterings metoden min feiler "random".. Noen ganger fungerer den, andre ganger ikke. Noen ganger blir blir kun deler av teksten klartekst etter dekryptering, mens andre ganger blir hele teksten dekryptert. Er usikker på om feilen ligger i krypterings eller dekrypteringsmetoden.

 

Jeg vet at det ikke er nøkklene som er (hoved)problemet, da jeg har prøvt med samme nøkkelparet flere ganger, er forsatt random om det fungerer eller ikke.

 

Kildekoden min finnes her: http://www.splaash.org/AS1.tar.gz

 

PS: Jeg er klar over at dette ikke er en bra måte å implementere RSA på, programmet skal ikke brukes til noe.

 

encrypt metoden min:

public void encrypt(InputStream arg0, OutputStream arg1) {
	keys = k.getKeys(); // Henter keys fra keyobject som allerede er lastet inn.
	for(int i = 0; i < 3; i++) { // Skriver ut nøkklene
		System.out.println(keys[i]);
	} 

	try {
		while ((arg0.read(buf, 0, 3)) >= 0) {
			// Leser inn 3 bytes fra input stream, adder random byte i siste del av arrayet.
			int random = rand.nextInt(255);
			buf[3] = (byte)random;
			// Gjør arrayet om til BigInteger
			data =  new BigInteger(buf);
	//krypterer data og gjør om til bytearray igjen.
			data = data.modPow(keys[2], keys[0]);
			buf2 = data.toByteArray();
	// Skriver ut klartekst.
			for(int i = 0; i < 3; i++) {
				System.out.print((char)buf[i]);
			}
	// Sender kryptert data ut igjen via OutputStream
			arg1.write(buf2);
			arg1.flush();
			buf = new byte[4];
		}
		System.out.println();
		arg0.close();
		arg1.close();
	} 
	catch (java.io.IOException e) { 
		System.out.println("fuckups RSA");
	}
}

 

Decrypt kode:

public void decrypt(InputStream arg0, OutputStream arg1) {
	keys = k.getKeys();

	for(int i = 0; i < 3; i++) {
		System.out.println(keys[i]);
	}
	try {
		while ((arg0.read(buf2)) >= 0) {
			data = new BigInteger(buf2);
			data = data.modPow(keys[1], keys[0]);
			buf = data.toByteArray();
			for(int i = 0; i < 3; i++) {
				System.out.print((char)buf[i]);
			}
			arg1.write(buf,0,3);
			arg1.flush();
		}
		arg0.close();
		arg1.close();
	} 
	catch (java.io.IOException e) { 
		System.out.println("fuckups RSA");
	}
}

 

Hvis noen ser hvorfor programmet mitt krasjer random hadde jeg satt STOR pris på tilbakemelding, tror jeg har sett meg blind på koden.

 

Det letteste er nok å kjøre kildekoden, noen endringer må gjøres i main (leser data fra fil)..

 

Kildekode

Assigment

Endret av eiiriik
Lenke til kommentar
Videoannonse
Annonse
Hva er resultatet? Exception eller bare mangel på korrekt dekryptering? Hvor kommer klassene BlockMode, KeyObject og RSAAlgorithm fra?

 

Jeg har skrevet alle klassen hvis det er det du lurer på?

Har fått interfacet fra professoren i faget.

 

Problemet er at krypteringen feiler.

Altså, noen ganger blir hele teksten dekrypter riktig, andre ganger bare deler av den, ulik størrelse hver gang.

Jeg har prøvt å bruke samme nøkkel hver gang, forsatt ulikt resultat. Om feilen ligger i decrypt eller encrypt er jeg usikker på, da jeg ikke kan se om den krypterte teksten er riktig..

 

 

Blockmode har ingen funksjon akkurat nå, de er bare der for at vi etter RSA krypteringen skal legge på en ny kryptering, på toppen av RSA.. men det skal ikke ha noe å gjøre med selve RSA krypteringen.

Lenke til kommentar
  • 3 uker senere...

Har du eksempler på data som fungerer, og data som feiler? Med tilhørende nøkkelpar du bruker?

 

 

Btw, studerer du ved SDSU ? Gidder du å svare på et par spørsmål på PM, jeg har tenkt meg til San Diego for å studere selv om et års tid eller så.

Lenke til kommentar
Har du eksempler på data som fungerer, og data som feiler? Med tilhørende nøkkelpar du bruker?

 

 

Btw, studerer du ved SDSU ? Gidder du å svare på et par spørsmål på PM, jeg har tenkt meg til San Diego for å studere selv om et års tid eller så.

 

Takk for hjelp, men problemet(ne) er løst for lenge siden, har bare ikkje sjekket her på forumet.

 

Går på sdsu ja. Lurer du på noe er nok det beste å sende mail, da jeg ikke ser sykt aktiv på diskusjon.no

 

eirik _ AT_ splaash _DOT_ org

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...