Languages
[Edit]
PL

JavaScript - szyfr z kluczem jednorazowym przy użyciu XOR

8 points
Created by:
Wayne
475

W tym krótkim artykule, chcielibyśmy przedstawić prostą, bazującą na XOR, implementację szyfru z kluczem jednorazowym w języku JavaScript.

Wykorzystywana formuła XOR:

 

Szybkie rozwiązanie:

1. szyfrowanie pojedyńczego bajtu

2. szyfrowanie wielu bajtów

 

Opis algorytmu

Edit

Algorym ten jest tak silny jak perfekcyjne są liczby losowe użyte jako klucze prywatne.

Koncepcja szyfru z kluczem jednorazowym opiera się na:

  1. użyciu formuły XOR na elementarnych porcjach danych (w naszym przypadku są to bajty),

    Wskazówka: sprawdź znajdującą się na końcu artykułu referencję do Wikipedi, aby poznać inne możliwe formuły szyfrowania danych po za XOR.

  2. przechowywaniu sekretnych kluczy na urządzeniu nadawcy i odbiorcy, składających się z perfekcyjnych liczb losowych (liczy losowe wygenerowane przez popularne algorytmy mogą być przewidywalne, więc warto użyć innych metod bazujących np. na naturze),
  3. nieudostępnianiu nikomu liczb losowych po za nadawcą i odbiorcą,
  4. używaniu zawsze tylko części sekretnych kluczy do szyforwania i deszyfrowania przesyłanych wiadomości (jeden bajt szyfrowany przez jeden sekretny klucz),
  5. nie używaniu nigdy skeretnego klucz więcej niż raz.

Uniwersalna implementacja

Edit

Poniższy program przechowuje informację o ostatnim sekretnym kluczu, który został użyty do szyfrowania i deszyfrowania, chroniąc przd złamaniem zasady 5 (nie używaniu nigdy skeretnego klucz więcej niż raz).

Wnioski:

  • [97, 98, 99] zakodowany 2 razy zwrócił 2 różne wyniki: [143, 169, 133] oraz [90, 104, 10] - jest to zagwarantowane poprzez jednorazowe użycie każdego klucza, który jest liczbą losową.

 

Alternatywan implementacja

Edit

Zobacz również

Edit
  1. JavaScript - convert string to bytes array

  2. JavaScript - convert string to bytes array under Node.js

Odnośniki

Edit
  1. Szyfr z kluczem jednorazowym - Wikipedia

Alternative titles

  1. JavaScript - szyfr jednorazowy
1
Donate to Dirask
Our content is created by volunteers - like Wikipedia. If you think, the things we do are good, donate us. Thanks!
Join to our subscribers to be up to date with content, news and offers.
Native Advertising
🚀
Get your tech brand or product in front of software developers.
For more information Contact us
Dirask - we help you to
solve coding problems.
Ask question.

❤️💻 🙂

Join