# Funkcjonalność

Samodzielne implementowanie kryptografii jest nietrywialne. Np.: istnieje wiele schematów szyfrowania symetrycznego, a dla każdego z nich należy wybrać odpowiedni tryb szyfrowania. Nie wszystkie kombinacje są bezpieczne, a ponadto w zależności od zastosowań, niektóre rozwiązania nie będą dość wydajne.

OCK umożliwia korzystanie z wielu schematów szyfrowania za pomocą prostego REST API, a system sam zadba o to, aby zostały wykorzystane bezpieczne schematy i tryby szyfrowania.

Umieszczenie kryptografii w chmurze oprócz bezpieczeństwa zapewnia skalowalność i wysoką dostępność.

# Szyfrowanie i deszyfrowanie

Podstawową funkcją OCK jest szyfrowanie i deszyfrowanie danych.

Do zaszyfrowania danych wystarczy je przesłać do API wraz z identyfikatorem aliasu klucza. System uwierzytelni użytkownika, zautoryzuje operację i zwróci zaszyfrowane dane. Proces odszyfrowania wygląda analogicznie.

Wspierane algorytmy:

  • 128 i 256-bitowy AES w trybach
    • Galois-Counter Mode (GCM)
    • Counter Mode (CTR)
  • RSA
  • Diffie-Helman (DH)

Aby uzyskać dostęp do REST API skontaktuj się z nami

# Format Preserving Encryption

FPE jest typem szyfrowania z zachowaniem formatu danych wejściowych. Na przykład numer karty kredytowej po zaszyfrowaniu nadal wygląda jak numer karty, tylko ma zmienione cyfry.

Format danych może być dowolnie zdefiniowany (długość, używane znaki) i po zaszyfrowaniu zostanie zachowany.

Takie szyfrowanie pozwala zapisywać zaszyfrowane dane w bazie bez modyfikacji schematu bazy. W przypadku podatności w aplikacji i wycieku danych będą one bezużyteczne dla atakującego.

Wspierane algorytmy:

  • FF3
  • GraFPE

# Hashowanie

Hashowanie jest funkcją nieodwracalną używaną do obliczenia dla dowolnych danych niepowtarzalnej skrótowej wartości (hasha). Taki hash pozwala na zweryfikowanie czy dane nie uległy zmianie od momentu jego obliczenia.

Hashowanie powinno być realizowane z użyciem bezpiecznych (wolnych) funkcji, by próba ataku nie była możliwa bez użycia znacznych mocy obliczeniowych.

Wspierane algorytmy:

  • SHA256
  • SHA384
  • SHA512
  • SHA3 (Keccack)

# Memory-Hard Function

Funkcje Memory-Hard do wyliczenia hasha używają znacznej ilości pamięci. Próba ich złamania również będzie wymagała takiej samej ilości pamięci.

Takie funkcje są przydatne w przypadku wyliczana hashy danych wrażliwych, a szczególnie haseł użytkowników.

Wspierane algorytmy:

  • RiffleScrambler

# Podpisywanie cyfrowe

Podpisy cyfrowe są szczególnym zastosowaniem hashy do weryfikowania pochodzenia plików cyfrowych. Plik może zostać podpisany przez twórcę, a następnie podpis może być weryfikowany w celu potwierdzenia, że plik nie został zmodyfikowany.

Wspierane algorytmy:

  • ECDSA

# Generowanie liczb losowych

Zazwyczaj w aplikacjach używa się algorytmów generujących liczby pseudolosowe. Rozwiązanie zaimplementowane w OCK generuje liczby prawdziwie losowe, dzięki generatorowi sprzętowemu.

Aby uzyskać dostęp do REST API skontaktuj się z nami