Mengenkripsi gambar • Mendekripsi gambar • Peringatan enkripsi dan dekripsi
Sebagian besar gambar memang dirancang untuk sering dilihat oleh banyak orang. Gambar web, misalnya, dapat dilihat ratusan kali sehari oleh banyak pengunjung. Namun, dalam beberapa kasus, Anda mungkin ingin menjaga privasi gambar tertentu sehingga hanya Anda, atau mungkin sekelompok teman atau pengunjung web pilihan, yang dapat melihatnya. ImageMagick memungkinkan Anda mengacak gambar sedemikian rupa sehingga, kecuali seseorang mengetahui passphrase Anda, mereka tidak akan dapat melihat konten aslinya.
Anda dapat menggunakan utilitas enkripsi untuk mengacak gambar, tetapi utilitas semacam itu biasanya mengacak seluruh file sehingga tidak lagi dikenali sebagai format gambar. Dengan ImageMagick, hanya piksel yang diacak. Gambar yang diacak tetap dikenali sebagai gambar dan bahkan akan tampil di halaman web Anda. Namun, kontennya tampak kacau dan tidak bermakna, sama sekali berbeda dari konten aslinya.
Mengenkripsi gambar
Gunakan opsi -encipher untuk mengacak gambar Anda sehingga tidak dapat dikenali. Opsi ini memerlukan nama file yang berisi passphrase Anda. Dalam contoh ini kita mengacak sebuah gambar dan menyimpannya dalam format PNG:
magick rose.jpg -encipher passphrase.txt rose.png
Berikut ini kita mengenkripsi sebuah gambar menggunakan gambar lain sebagai passphrase:
magick rose.jpg -encipher smiley.gif rose.png
Mendekripsi gambar
Gunakan opsi -decipher untuk mengembalikan gambar Anda yang teracak sehingga dapat dikenali kembali. Opsi ini memerlukan nama file yang berisi passphrase Anda. Dalam contoh ini kita mengembalikan gambar dan menyimpannya dalam format JPEG:
magick rose.png -decipher passphrase.txt rose.jpg
Peringatan enkripsi dan dekripsi
Beberapa format tidak mendukung piksel terenkripsi—format JPEG atau GIF, misalnya. Untuk memastikan format gambar Anda didukung, enkripsi sebuah gambar uji dan verifikasi bahwa Anda dapat memulihkan konten aslinya sebelum mengenkripsi gambar tambahan lainnya dalam format tersebut.
Format gambar mungkin hanya mendukung 8-bit dan RGB (TrueColor). Karena itu, Anda mungkin ingin menyertakan opsi "-depth 8 -type TrueColor" sebelum nama file output.
Passphrase dapat berupa kombinasi huruf dan simbol apa pun. Sebaiknya gunakan kombinasi minimal 12 karakter untuk membantu memastikan gambar Anda tetap privat. Pastikan juga izin file passphrase Anda mencegah orang lain membacanya, karena jika tidak, pengguna yang tidak diinginkan mungkin dapat melihat konten gambar aslinya.
Anda hanya dapat memulihkan konten gambar asli jika Anda mengetahui passphrase Anda. Jika Anda kehilangan atau melupakannya, konten gambar asli Anda akan hilang selamanya.
ImageMagick hanya mengacak piksel gambar. Metadata gambar tetap tidak tersentuh dan dapat dibaca oleh siapa pun yang memiliki akses ke file gambar tersebut.
ImageMagick menggunakan AES dalam mode Counter (CTR) untuk mengacak data piksel gambar. Implementasi saat ini menurunkan kunci AES maupun IV (initial counter/counter awal) secara deterministik dari passphrase yang diberikan pengguna: separuh pertama passphrase menjadi kunci AES, dan separuh kedua di-hash bersama dimensi gambar untuk menghasilkan IV. Karena IV ini diturunkan semata-mata dari passphrase serta lebar dan tinggi gambar, mengenkripsi beberapa gambar dengan passphrase yang sama dan dimensi yang sama akan menghasilkan IV yang sama, sehingga menghasilkan keystream yang sama pula.
Mode CTR memerlukan IV yang unik dan tidak berulang untuk setiap enkripsi di bawah kunci yang sama. Menggunakan kembali sebuah IV dalam mode CTR menyebabkan keystream digunakan kembali, sehingga memungkinkan penyerang memulihkan informasi tentang plaintext dengan meng-XOR-kan ciphertext. Karena itu, konstruksi IV deterministik saat ini tidak memberikan kerahasiaan yang kuat secara kriptografis.
Untuk menghindari penggunaan kembali keystream dan kebocoran informasi yang diakibatkannya, pengguna perlu menyediakan passphrase yang berbeda untuk setiap gambar, yang tidak praktis dan tetap tidak memenuhi ekspektasi kriptografis modern. Oleh karena itu, fitur enkripsi ImageMagick hanya cocok untuk penyamaran (obfuscation) sekadarnya, bukan untuk enkripsi yang sensitif terhadap keamanan.
Saat ini hanya ImageMagick yang dapat memulihkan konten gambar terenkripsi Anda. Kami menggunakan cipher dan mode standar sehingga vendor lain berpotensi dapat mendukung konten gambar terenkripsi.
Beberapa contoh praktis kecil tentang enkripsi gambar dapat ditemukan di IM Examples Encrypting Image Data.