Wpis z mikrobloga

Przesyłam zaszyfrowaną wiadomość przez sieć i obawiam się, że ktoś celowo przekręci kluczowy bit.
Co mogę dodać do tej wiadomości przed szyfrowaniem, żeby zapewnić sobie integralność danych?
Logicznym wydaje się przesyłanie wiadomości wraz z jej hashem.
Pytanie brzmi, czy są bezpieczne kryptograficzne funkcje skrótu, które zapewnią mi integralność danych i nie zajmują 256 bajtów? ( ͡° ͜ʖ ͡°)
Idealnie byłoby, gdyby kod nadmiarowy miał 2-4 bajty, ale na pierwszy rzut oka wydaje się to niemożliwe, czy mylę się?
#kryptografia #programowanie
  • 16
@groman43: @yhbgrobdoivbvwamsv: Wiadomość ma 256 bajtów i zmiana jednego z jej bitów może narobić wiele szkody. Obawiam się, że jego zmiana może nie wpłynąć na CRC, albo może ono zostać zmienione wraz z nim.
Zakładam, że intruz może użyć metody brute force, a całość jest szyfrowana AES256(dowolny tryb).
@Malkof: Zależy Ci na throughpucie, czy nie bardzo? Jeśli nie bardzo, to podziel wiadomość na mniejsze code blocki i policz CRC dla każdego code blocku osobno. To zmniejszy prawdopodobieństwo niewykrycia przekłamania. Pomysł bezpośrednio pożyczony z sieci komórkowych.

Poza tym sprawdź jakie jest prawdopodobieństwo niewykrycia przekłamania dla różnych długości CRC. Może po prostu przesadzasz ( ͡° ͜ʖ ͡°) Ewentualnie dodaj dodatkową weryfikację po stronie odbiornika jeśli to jest
Przesyłam zaszyfrowaną wiadomość przez sieć i obawiam się, że ktoś celowo przekręci kluczowy bit.

Co mogę dodać do tej wiadomości przed szyfrowaniem, żeby zapewnić sobie integralność danych?


@Malkof: czemu nie po prostu SSL?
Ale zmiana tego bitu nie gwarantuje zmiany crc32.


@Malkof: Coś mi po głowie chodzi własność crc32 że zmiana dowolnego bitu gwarantuje zmianę sumy kontrolnej crc32 (a nawet chyba dowolna zmiana w jednym bajcie)

Oczywiście że z racji 32 bitowego rozmiaru istnieje niezerowe ryzyko kolizji, zwłaszcza jeśli mówimy nie o przekłamaniu, a o celowej zmianie to wtedy w ogóle banalnie.

Ogólnie jeśli boisz się że ktoś przekręci jeden bit (i tylko jeden),
ale byłem ciekaw, czy są zgrabniejsze rozwiązania.


@Malkof: nie ma. jedynym bezpiecznym rozwiazaniem jest encrypt then hash. wiec mowiac dokladniej nie #!$%@? wiadomosci tylko kryptogram