Bir sayısal imza bir belgeyi onaylamak ve tarih damgası vurmak için kullanılır. Bir belge herhangi bir şekilde imzalamanın ardından değiştirilirse, imzanın doğrulanması başarısız olur. Bir sayısal imza, bir elyazısı imzanın kullanım amacına ek olarak değişikliğe dirençlilik gibi bir yararı da beraberinde sunar. Örneğin, GnuPG kaynak paketi imzalı dağıtılır; paketlendikten sonra kaynak kodu değişikliğe uğramışsa, imza doğrulaması başarısız olacaktır.
İmzaların oluşturulması ve doğrulanmasında genel/gizli anahtar çifti ile şifreleme ve şifre çözmeden farklı bir işlem uygulanır. Bir imza, imzalayanın gizli anahtarı kullanılarak oluşturulur. İmzanın doğrulaması ise karşılığı olan genel anahtar kullanılarak yapılır. Örneğin, Murat yazdığı son makaleyi gönderirken kendi gizli anahtarı ile ürettiği imza ile imzalamalıdır. Dergi editörü makalenin üzerindeki imzanın Murat'a ait olup olmadığını ve Murat'ın makalesinde değişiklik olup olmadığını Murat'ın genel anahtarını kullanarak anlayabilir. Sayısal imzaların kullanımının bir önemi de uzlaşma için gizli anahtarın açıklanması gerektiğinden yapılan sayısal imzanın yalanlanmasındaki zorluktur.
--sign komut satırı seçeneği sayısal imzaları üretmekte kullanılır. İmzalanacak belge girdi olarak alınır ve imzalı belge çıktılanır.
$ gpg --output makale.sig --sign makale
Bu komut veriyi imzalar ve sıkıştırır. Çıktı sig uzantılı okunamaz bir dosyadır. Komuta eklenecek --clearsign parametresi, çıktının okunabilir bir asc uzantılı dosyaya saklanmasını sağlar.
- Örnek 7.3.
-
$ gpg -u gönderen -r alıcı --armor --sign --encrypt veri
Bu komut veri dosyasındaki veriyi şifreler, imzalar ve çıktısını veri.asc dosyasına ASCII biçimde yazar.
Bir imzalı belge aldığınızda hem imzayı denetleyebilir hem de imzayı denetleyip özgün belgeyi açabilirsiniz. İmza denetimi için --verify komut satırı seçeneği kullanılır. İmzayı doğrulayıp belgeyi açmak için ise --decrypt seeneği kullanılır. Doğrulanacak ve açılacak imzalı belge girdi olarak alınır ve açılan belge çıktılanır.
$ gpg --output belge --decrypt belge.sig
Sayısal imzaların genellikle kullanıldığı yerlerden bazıları da eposta iletileri ve haber gruplarına gönderilen postalardır. Bu tür metinler imzalanırken sıkıştırılmaları istenmez. --clearsign komut satırı seçeneği kullanılarak metin ASCII zırhlı bir imza ile sarmalanır, ancak bu takdirde metnin değiştirilememesi sağlanır.
Bir imzalı belgenin kullanışlılığı sınırlıdır. İmzalı belgeden orjinal belgeyi elde etmek isteyen kullanıcılar, belge açık imzalı olsa bile, imzalı belgeyi düzenlemek zorundadır. Bu nedenle, bir belgeyi imzalamak için üçüncü bir yol bulunmuştur. Bu imzalama türünde ayrı bir dosya olarak bir ayrık imza oluşturulur. Bir ayrık imza --detach-sig komut satırı seçeneği kullanılarak oluşturulur.
$ gpg --output belge.sig --detach-sig belge
İmzayı doğrulamak için belge ve ayrık imza birlikte kullanılır. İmzayı denetlemekte --verify seçeneği kullanılır.
4 gpg --verify belge.sig belge