Kryptografia - Kryptoanaliza

0

Witam, chciałbym się dowiedzieć w jaki sposób przeprowadzić kryptoanalizę danego szyfrogramu:

 
6421 605099 6264 586866 5528 172360 1997 200543 1883 182404 1730 165970 1627 160306 1715 157297 1768 162127 1894 182088 5910 557377 5142 596446 5634 655386 6168 702632 6350 653669 6474 603981 6274 585829 5471 172137 1948 200159 

Jestem totalnie początkujący, tak że proszę o wyrozumiałość,
Jak z tego co podałem w krokach uzyskać tekst jawny. Nie odsyłajcie mnie do googla, bo szukałem i z tego co znalazłem nie za wiele rozumiem.

0

Podaj pełną treść zadania, zapewne znasz rodzaj szyfru, a to bardzo upraszcza sprawę.
Bez znajomości szyfru i ogólnego pojęcia o treści ta wiadomość jest po prostu za krótka by móc ją rozszyfrować.

0

Mi chodzi właśnie o to jak to zrobić aby nie znać algorytmu szyfrującego i wiadomości odszyfrowanej, ale algorytm szyfrujący wygląda tak:

unsigned long long int *szyfruj(string tekst, string hasło)
{
	unsigned long long int *wynik=new unsigned long long int[tekst.size()];
	unsigned long long int hasło_int=0;
	while(tekst.size()>hasło.size())
	{
		hasło+=hasło;
	}
	for(unsigned long long int i=0;i<hasło.size();i++)
	{
		hasło_int+=hasło[i];
	}
	if(hasło_int<0)
	{
		hasło_int=0-hasło_int;
	}	
	unsigned long long int tmp=0;
	bool para=true;
	for(unsigned long long int i=0;i<tekst.size();i++)
	{
		tmp=tekst[i]+1+i+hasło[i]+hasło_int;
		if(tmp<0)
		{
			tmp=0-tmp;
		}
		wynik[i]=tmp;
		if(para==true)
		{
			hasło_int=hasło_int*hasło[i];
			para=false;
		}
		else
		{
			hasło_int=hasło_int/hasło[i];
			para=true;
		}
	}
	return wynik;
} 
0

Niby jak chcesz odszyfrować wiadomość nie mając algorytmu? Poniżej masz zaszyfrowaną wiadomość:

123456

Proszę, powiedz, jaką liczbę tam zaszyfrowałem, nie znając algorytmu.

0

ciekawe czy umiesz napisać kod deszyfrujący (znając hasło) :)

0

a jeżeli znam sam klucz a nie znam algorytmu, a co z kryptoanalizą(tak to się chyba nazywa)?

0

Tak, napisałem go:

string deszyfruj(unsigned long long int *tekst, unsigned long long int ilość, string hasło)
{
	string wynik;
	unsigned long long int hasło_int=0;
	while(ilość>hasło.size())
	{
		hasło+=hasło;
	}
	for(unsigned long long int i=0;i<hasło.size();i++)
	{
		hasło_int+=hasło[i];
	}
	if(hasło_int<0)
	{
		hasło_int=0-hasło_int;
	}	
	unsigned long long int tmp=0;
	bool para=true;
	for(unsigned long long int i=0;i<ilość;i++)
	{
		tmp=tekst[i]-1-i-hasło[i]-hasło_int;
		if(tmp<0)
		{
			tmp=0-tmp;
		}
		wynik+=tmp;
		if(para==true)
		{
			hasło_int=hasło_int*hasło[i];
			para=false;
		}
		else
		{
			hasło_int=hasło_int/hasło[i];
			para=true;
		}
	}
	return wynik;
} 
0
adam vip napisał(a):

a jeżeli znam sam klucz a nie znam algorytmu, a co z kryptoanalizą(tak to się chyba nazywa)?

Ok, to masz kolejne zadanie:
zaszyfrowana liczba: 123456
klucz: 111

Jaką liczbę zaszyfrowałem?

0

Ja się tylko pytam, czytałem gdzieś że można odszyfrować wiadomość zakodowaną algorytmem Vegnera samą metodą kryptoanalizy, o której nie mam pojęcia.

0

do kryptoanalizy potrzeba jest dużo danych. Im algorytm bardziej skomplikowany i im dłuższe hasło tym więcej danych potrzeba.
Szyfrogram dla tekstu o długości 40 znaków to troszkę mało, nawet jeśli stosować jakiś prosty szyfr np Szyfr Vigenère'a.

Gdybyś dał 10 wiadomości zaszyfrowanych jednym hasłem to można byłoby coś kombinować.

0

No tak, był ale wydaje mi się że nie odszyfruję szybko wiadomości zakodowanej wegnerem metodą brutalną. Jest na to jakiś sposób kryptoanalizy. Chyba, mówię tylko to przelotnie czytałem i mogę się mylić.

0

Hasło jest 4 znakowe "adam", wiadomość: "Biblioteka standardowa Jest to zbiór bibliotek zapewniający podstawową funkcjonalność językowi C++. Rozszerza go o często przydatne funkcje, klasy, algorytmy; zapewnia integracje z systemem operacyjnym. Można wyróżnić trzy podstawowe grupy w bibliotece standardowej:."
szyfrogram:50052 4839343 48589 4694148 43205 1378231 14298 1603185 13365 1458547 12107 1327029 11393 1282353 12212 1258323 13184 1297229 13599 1457602 45782 4463545 39328 4776631 43278 5249912 47556 5628161 49191 5236719 50031 4837741 48602 4692526 43102 1377784 14239 1602642 13389 1458134 12209 1326605 11414 1281942 12229 1257940 13144 1296767 13620 1456979 45774 4461637 39419 4774618 43286 5247737 47379 5625878 49205 5234423 50119 4835626 48613 4690529 43242 1377189 14350 1602001 13427 1457329 12158 1326077 11446 1281506 12260 1257437 13243 1296286 13658 1456449 45794 4459992 39436 4772735 43177 5245741 47568 5623645 49217 5232509 50125 4833813 48644 4688803 43172 1376677 14299 1601393 13380 1457018 12234 1325672 11477 1281081 12301 1257049 13277 1295927 13671 1455978 45805 4458651 39375 4771512 43252 5244252 47600 5622009 49226 5231036 50145 4832406 48653 4687484 43280 1376377 14382 1601021 13476 1456682 12280 1325290 11484 1280768 12316 1256770 13288 1295541 13701 1455584 45751 4457403 39469 4770064 43352 5242718 47538 5620427 49223 5229453 50151 4830963 48670 4686066 43290 1375947 14428 1600443 13417 1456169 12301 1324845 11508 1280225 12341 1256273 13311 1294997 13730 1455135 45848 4455761 39480 4768403 43348 5240774 47612 5618384 49170 5227571 50092 4829251 48689 4684344 43304 1375457 14441 1599945 13519 1455554 12340 1324320 11534 1279790 12353 1255772 13360 1294601 13760 1454631 45854 4454070 39424 4766566 43376 5238688 47629 5616387 49182 5225672 50193 4827534 48568 4682545 43313 1375011 14331 1599336 13552 1455222 12378 1324026 11492 1279473 12394 1255488 13380 1294241 13773 1454223 45872 4452801 39511 4765087 43385 5237311 47651 5614647 49285 5223903 50204 4825833 48692 4681096 43316 1374564 14487 1598875 13577 1454684 12380 1323481 11517 1278931 12424 1254990 13400 1293755 13797 1453594 45871 4450863 39542 4763112 43399 5234967 47589

0

Vegner z kluczem jednorazowym tak samo długim jak wiadomość jest nie do złamania. Czyli ten mój algorytm z odpowiednio długim kluczem jest też nie do złamania?

0

W sumie większość algorytmów szyfrowania symetrycznego jest opartych na Vegnerze.

1 użytkowników online, w tym zalogowanych: 0, gości: 1