Go to file
2023-05-10 10:31:57 +00:00
README.md update 2023-05-10 10:31:57 +00:00

MastersThesis

Building

LINUX

  • testované na Ubuntu 20.04.5

1. Inštalácia potrebných nástrojov

sudo apt install cmake gcc libtool libssl-dev make ninja-build git -y

2. Stiahnutie Open Quantum Safe OpenSSL repozitáru

git clone --branch OQS-OpenSSL_1_1_1-stable https://github.com/open-quantum-safe/openssl.git

3. Stiahnutie a inštalácia liboqs

git clone --branch main https://github.com/open-quantum-safe/liboqs.git
cd liboqs
mkdir build && cd build
cmake -GNinja -DCMAKE_INSTALL_PREFIX=../../openssl/oqs ..
ninja
ninja install

4. Build QS OpenSSL fork

cd ./openssl
./Configure no-shared linux-x86_64 -DOQS_DEFAULT_GROUPS=\"kyber1024:p521_kyber1024:kyber90s1024:p521_kyber90s1024\" -lm
make -j 1
sudo make install

5. Vytvorenie CA kľúča a certifikátu

  • v tomto príklade je p256_dilithium2 hybridný algoritmus dilithium2 s použitím P256 ECDH krivkou
cd ./openssl/apps
./openssl req -x509 -new -newkey p256_dilithium2 -keyout p256_dilithium2_CA.key -out p256_dilithium2_CA.crt -nodes -subj "/CN=oqstest CA" -days 365 -config ./openssl.cnf

6. Vygenerovanie privátneho kľúča pre server

./openssl req -new -newkey p256_dilithium2 -keyout p256_dilithium2_srv.key -out p256_dilithium2_srv.csr -nodes -subj "/CN=localhost" -config ./openssl.cnf

7. Vygenerovanie certifikátu s CA podpisom pre server

./openssl x509 -req -in p256_dilithium2_srv.csr -out p256_dilithium2_srv.crt -CA p256_dilithium2_CA.crt -CAkey p256_dilithium2_CA.key -CAcreateserial -days 365

8. Spustenie serveru a klienta

  • oba programy je potrebné spustiť v samostatných oknách terminálu
./openssl s_server -cert p256_dilithium2_srv.crt -key p256_dilithium2_srv.key -www -tls1_3
./openssl s_client -groups kyber1024 -CAfile p256_dilithium2_CA.crt -connect localhost

WINDOWS

  • testované na Windows 10.0.19043

1. Príprava prostredia

Perl - stiahnutie Perl-u strawberry-perl-5.32.1.1-64bit zo stránky https://strawberryperl.com/

Cmake - stihnutie CMake-u cmake-3.26.3-windows-x86_64 zo stránky https://cmake.org/download/

NMAKE - tbd

Pridanie premenných prostredia:

D:\Strawberry\perl\bin
D:\Program Files\CMake\bin
D:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.35.32215\bin\Hostx86\x86\nmake.exe

pozn. v našom prípade premenná nepomohla a bolo nutné ich nekonfigurovať manuálne v Powershelli príkazmi:

$env:path += ";D:\Program Files\cmake\bin"
$env:path += ";d:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.35.32215\bin\Hostx86\x86\"

2. Stiahnutie OpenSSL, Open Quantum Safe OpenSSL repozitáru a liboqs

OpenSSL - stiahnutie OpenSSL 1.1.1t zo stránky - https://www.openssl.org/source/
Stiahnutý súbor sme extrahovali do priečinka ProgramFiles a premenovali sme ho na openssl

OpenSSL OQS - stiahnutie OQS OpenSSL repozitáru z GITu - https://github.com/open-quantum-safe/openssl/tree/OQS-OpenSSL_1_1_1-stable
Presun stiahnutých súborov do openssl priečinku

Liboqs - stiahnutie súborov z GITu - https://github.com/open-quantum-safe/liboqs

3. Príprava liboqs

  • v prípade chyby prístupu pri príkaze cmake alebo ninja je potrebné spustiť PowerShell ako administrátor
cd liboqs
mkdir build
cd build
cmake -GNinja -DCMAKE_INSTALL_PREFIX='D:\Program Files\openssl\openssl-OQS-OpenSSL_1_1_1-stable\oqs' ..
ninja
ninja install

4. Build QS OpenSSL fork

cd ./openssl
perl Configure VC-WIN64A no-shared
nmake

⚠️ ⚠️ ⚠️

err-code

References

Open quantum safe OpenSSL 1.1.1t