1) Özel Anahtar ve Açık Anahtarın Oluşturulması
Asimetrik şifreleme için ilk olarak özel anahtar oluşturulmalıdır. Bu amaçla OpenSSL komut satırı aracı kullanılabilir. OpenSSL yazılımı kendi sayfasından (https://www.openssl.org/source/) elde edilebilir. Bu yazılımın kurulum dosyalarının C:\ ana dizinine yapıldığını varsayalım.
Özel anahtarı oluşturmak için komut satırından OpenSSL’e ait dizine gidilir (C:\OpenSSL-Win64\bin) ve aşağıdaki komut yazılır:
openssl.exe genrsa -out OzelAnahtar.pem 1024
Bu komutta OzelAnahtar.pem, özel anahtar üretildikten sonra kaydedileceği dosya adıdır ve 1024 değeri ise anahtar uzunluğunu temsil eder, kullanıcı tercihine bağlı olarak 2048 veya 4096 olarak değiştirilebilir. Bu komut ve çıktısına ait ekran görüntüsü aşağıda verilmiştir.

Bu komuttan sonra ilgili dizin (C:\OpenSSL-Win64\bin) içerisinde OzelAnahtar.pem isminde bir dosya oluşturulmuş ve özel anahtar bu dosya içerisine kaydedilmiştir.
Not: Eğer “Warning: can’t open config file: C:\Openssl \bin\openssl.cfg” şeklinde bir uyarı alınıyorsa, konfigürasyon dosyası gösterilmelidir. Bu amaçla,
set OPENSSL_CONF=C:\OpenSSL-Win64\bin\openssl.cfg
komutu çalıştırılmalıdır.
İkinci aşama olarak, yukarıda oluşturulan OzelAnahtar.pem dosyasından açık anahtar elde edilecektir. Bu işlem için gereken komut;
openssl.exe rsa -in OzelAnahtar.pem -out GenelAnahtar.pem -outform PEM -pubout
şeklindedir. Komut çıktısı aşağıdaki gibidir.

Bu komut sonrasında ilgili dizin içerisinde GenelAnahtar.pem isminde bir dosya oluşturulduğu gözlenecektir.
Aynı özel anahtar ile aynı komut (formatı aynı olacak şekilde) her çalıştırıldığında oluşacak olan genel anahtarların özet değerleri aynı olur, yani değişmez.
2) Metin Dosyası Şifreleme ve Şifresini Çözme
Açık ve özel anahtarlar oluşturulduktan sonra şifreleme, şifre çözme, imzalama ve doğrulama aşamaları vardır. Bu aşamalar için aynı dizinde test.txt isimli bir metin dosyası oluşturulur ve içerisine www.bilgiguvenligi.gov.tr yazılır.

Şifreleme aşamasında,
openssl.exe rsautl -encrypt -inkey GenelAnahtar.pem -pubin -in test.txt -out sifreliTest.enc
komutu ile şifrelenecek olan dosya (test.txt), şifreleme işleminin yapılacağı açık anahtar ve şifrelemeden sonra oluşturulacak olan şifreli dosya adı (sifreliTest.enc) parametre olarak verilmiştir. Bu komutun çalışmasına dair ekran görüntüsü aşağıdaki gibidir.

Bu işlem öncesinde test.txt içeriği www.bilgiguvenligi.gov.tr iken, şifreleme sonrasında oluşan dokümana ait ekran görüntüsü aşağıda verilmiştir.

Deşifre işleminde ise;
openssl.exe rsautl -decrypt -inkey OzelAnahtar.pem -in sifreliTest.enc
komutu verilirse aşağıdaki ekran görüntüsü elde edilecektir.

Not: Şifrelenmiş metnin çözülmüş halinin çıktısını bir dosyaya yazdırmak için ‘>’ kullanılır.
3) Metin Dosyası İmzalama ve Doğrulama
İmzalama işlemi için;
openssl.exe rsautl -sign -inkey OzelAnahtar.pem -in test.txt > imzaliTest.txt
komutu yazılırsa ilgili dizine imzaliTest.txt isminde imzalanmış bir dosya oluşturulur. Bu işleme ait ekran görüntüsü aşağıdaki gibidir.

Bu işlem sonrası imzaliTest.txt içeriğine ait ekran görüntüsü aşağıda verilmiştir.

İmzalanan dosyanın doğrulanması için aşağıdaki komut kullanılır.
openssl.exe rsautl -verify -inkey GenelAnahtar.pem -pubin -in imzaliTest.txt
