kriptografi enkripsi hashing | java php laravel linux mysql sql bootstrap html css query java php laravel linux mysql sql bootstrap html css query: kriptografi enkripsi hashing

Sunday, October 4, 2026

kriptografi enkripsi hashing

🔐🔑🧬
Artikel 8 dari 16 · Pertukaran Informasi Kesehatan (RM5306) · Sub-CPMK T4

Si Pengacak dan Si Penjaga Keutuhan: Enkripsi, Dekripsi, Hashing, dan Autentikasi

Cara data pasien tetap rahasia, tetap utuh, dan tetap terbukti asli saat berpindah dari satu sistem ke sistem lain.

#Kriptografi#Enkripsi#Hashing#Autentikasi
9 menit
Estimasi baca
Dasar
Level
2026
Tahun terbit

Bayangkan kamu mengirim hasil laboratorium pasien lewat aplikasi chat, lalu ponsel temanmu hilang di angkutan umum. Satu file yang bocor bisa membuka diagnosis, alamat, sampai riwayat obat seseorang. Di sinilah kriptografi enkripsi hashing data kesehatan bekerja sebagai garis pertahanan terakhir: kalaupun data jatuh ke tangan yang salah, isinya tidak terbaca, dan perubahan sekecil apa pun langsung ketahuan.

Artikel ini untuk kamu, mahasiswa semester 3 D3 RMIK yang kelak memegang data pasien setiap hari. Kita bedah dua tokoh: Si Pengacak (enkripsi dan dekripsi) dan Si Penjaga Keutuhan (hashing), plus autentikasi yang memastikan kamu bicara dengan orang yang tepat. Artikel ini bagian dari seri “Keamanan dan Perlindungan Data”, dan melanjutkan prinsip confidentiality, integrity, authentication, encryption di artikel sebelumnya.

Kenapa Kriptografi Data Kesehatan Itu Wajib?

Hukum Indonesia memperlakukan data kesehatan secara khusus. UU Pelindungan Data Pribadi menggolongkan data dan informasi kesehatan sebagai data pribadi yang bersifat spesifik [1] (lihat Pasal 4). Permenkes tentang Rekam Medis juga menuntut fasilitas pelayanan kesehatan menjaga keamanan dan kerahasiaan rekam medis elektronik [2]; nomor pasal rincinya perlu diverifikasi sebelum kamu kutip di tugas.

Kriptografi menjawab tuntutan itu dengan empat alat. Perhatikan pembagian tugasnya dalam definisi berikut.

📐 Definisi Kunci: Kriptografi
Kriptografi adalah ilmu mengubah informasi secara matematis supaya hanya pihak berwenang yang bisa membacanya, memastikan isinya tidak berubah, dan membuktikan asal-usulnya [8].
Enkripsi : data + kunci   -> ciphertext (bisa dibalik dengan kunci)
Hashing  : data           -> digest tetap (tidak bisa dibalik)
Autentikasi : bukti identitas -> akses diberikan / ditolak
Tabel 1. Tiga konsep inti dan tugasnya
KonsepPertanyaan yang dijawabBisa dibalik?Contoh di fasyankes
EnkripsiSiapa yang boleh membaca?Ya, dengan kunciBackup rekam medis elektronik dienkripsi
HashingApakah isinya masih utuh?TidakMencocokkan file hasil lab sebelum dan sesudah kirim
AutentikasiApakah kamu benar kamu?Tidak berlakuLogin SIMRS dengan kata sandi + kode OTP

Enkripsi dan Dekripsi dalam Kriptografi Data Kesehatan

Enkripsi mengubah data terbaca (plaintext) menjadi kode acak (ciphertext). Dekripsi membalik prosesnya dengan kunci yang benar. Analoginya kotak obat berkunci di bangsal: tanpa kunci, orang hanya melihat kotak besi, bukan isinya.

Ada dua jenis kunci. Pada enkripsi simetris seperti AES [4], satu kunci dipakai untuk mengunci dan membuka, seperti kunci lemari arsip yang kamu pegang bersama kepala ruangan. Cepat, tapi kuncinya harus dititipkan dengan aman. Pada enkripsi asimetris seperti RSA, ada sepasang kunci: kunci publik boleh dibagikan, kunci privat disimpan sendiri. Bayangkan kotak pos puskesmas: siapa pun boleh memasukkan surat, tetapi hanya petugas yang memegang kunci kotaknya yang bisa membukanya.

Enkripsi juga punya dua lokasi kerja. Data at rest melindungi data yang tersimpan (basis data, backup, flashdisk). Data in transit melindungi data yang sedang jalan di jaringan; itulah tugas TLS di balik gembok HTTPS [7]. Berikut contoh data pasien fiktif sebelum dan sesudah dienkripsi.

pasien.json (plaintext, data fiktif)
{"no_rm":"RM-2026-0001","nama":"Budi Santoso","diagnosis":"Hipertensi","hasil_lab":"TD 150/95"}
pasien.enc (ciphertext AES-256, base64)
U2FsdGVkX1+WA9fEkC4O6XFrnNvcg5exsGRKgN/wRvCBJhcrjz8tTbff1DWRKrw9
VtiAnY4c5hAKQzTGm86VWothVwId1UD9lkeALgzLS/82ZpzB+xg1E049LeNmTm6Q
ypZc7pQ88xJxm7kC168jLQ==
⚡ Insight Penting: Kunci lebih penting daripada algoritma
Algoritma seperti AES bersifat terbuka dan sudah diuji bertahun-tahun. Yang membuat data aman adalah kunci yang kuat dan tersimpan rapi. Kunci yang ditempel di monitor sama saja dengan tidak mengenkripsi.

Hashing Data Kesehatan: Sidik Jari Digital Penjaga Keutuhan

Hashing mengubah data apa pun menjadi deretan karakter dengan panjang tetap yang disebut digest. Analoginya sidik jari: dari sidik jari kamu tidak bisa merekonstruksi tubuhmu (tidak bisa dibalik), tetapi sidik jari yang sama pasti milik orang yang sama. SHA-256 termasuk keluarga fungsi hash standar dalam FIPS 180-4 [5].

Hash punya tiga sifat yang wajib kamu hafal: hasilnya selalu sama untuk input yang sama, panjangnya tetap, dan berubah drastis jika input berubah sedikit saja (avalanche effect). Lihat sendiri: dua nomor rekam medis yang hanya beda satu angka menghasilkan hash yang sama sekali tidak mirip.

SHA-256 nomor rekam medis fiktif
SHA-256("RM-2026-0001") =
2f88aa1c4563fb475f0be70e9e208a712443b3f16490b7d5b4a7b72f40d2ce9d

SHA-256("RM-2026-0002") =
1b5974b5a43537a3c525adcf5bd9180d507db59f401147935772e6d08df54a9c
🔥 Fakta Menarik: Algoritma hash pun bisa “pensiun”
Tim peneliti CWI Amsterdam dan Google menunjukkan tabrakan (collision) pertama pada SHA-1 lengkap pada 2017 [12]. Sejak itu SHA-1 dan MD5 tidak lagi layak untuk keperluan keamanan. Untuk integritas file, pakai SHA-256 atau yang lebih kuat.

Hash biasa belum cukup: kenalkan HMAC

Penyerang cerdik bisa mengubah data, lalu menghitung ulang hash-nya. Solusinya HMAC [6]: hash yang dicampur kunci rahasia, sehingga hanya pemegang kunci yang bisa membuat hash valid. HMAC membuktikan integritas sekaligus keaslian pengirim.

HMAC-SHA256 dengan kunci fiktif
printf 'Diagnosis: Hipertensi' | openssl dgst -sha256 -hmac "kunci-rahasia-rs"
# 89fa876c50d05a63a44f06518dc32b68a2b09d3e0342104aeebb54df05845182
🔬 Analysis Box: Enkripsi saja, hash saja, atau keduanya?

Skenario: RS mengirim file hasil lab ke klinik rujukan. Mari bandingkan tiga pilihan pengamanannya.

[RS Pengirim] --(file + hash/HMAC)--> ( jaringan ) --> [Klinik Penerima]
     |                                                        |
  enkripsi + HMAC                                  dekripsi + verifikasi
  • Hanya enkripsi: isi rahasia, tetapi mode tertentu (misalnya CBC tanpa autentikasi) masih memungkinkan pengubahan tanpa terdeteksi.
  • Hanya hash: perubahan terdeteksi, tetapi isi terbaca semua orang dan penyerang bisa menghitung ulang hash.
  • Enkripsi + HMAC (atau mode terautentikasi seperti AES-GCM): rahasia, utuh, dan terbukti asli. Pilihan inilah yang kamu rekomendasikan.

Autentikasi: Pembuktian Identitas dalam Pertukaran Data Kesehatan

Enkripsi dan hashing tidak berguna jika orang yang salah berhasil masuk lewat pintu depan. Autentikasi memastikan pengguna atau sistem memang siapa yang diklaimnya. Ada tiga jenis faktor [11]: sesuatu yang kamu tahu (kata sandi), sesuatu yang kamu punya (ponsel penerima OTP, kartu), dan sesuatu yang kamu adalah (sidik jari). Menggabungkan dua faktor atau lebih disebut multi-factor authentication (MFA), misalnya kode TOTP yang berubah tiap 30 detik [9].

Antarsistem, autentikasi biasanya memakai token. Standar HL7 FHIR merekomendasikan pola OAuth 2.0 untuk membatasi siapa boleh mengakses sumber daya pasien [10]. Permintaan HTTP berikut memperlihatkan idenya: tanpa token valid, server menolak.

Request HTTP ke server FHIR (data fiktif)
GET /fhir/Patient/pasien-0001 HTTP/1.1
Host: fhir.rs-contoh.id
Authorization: Bearer eyJ...token-fiktif...
Accept: application/fhir+json

# Tanpa token valid -> HTTP/1.1 401 Unauthorized
⚠️ Perhatian: Hash kata sandi bukan sekadar SHA-256
Sistem yang menyimpan kata sandi harus memakai hash lambat bersalt seperti Argon2 [13] atau PBKDF2, bukan SHA-256 polos. Hash cepat memudahkan penyerang menebak miliaran kata sandi per detik. Dan jangan pernah merancang algoritma kriptografi sendiri.

Praktik Kriptografi, Enkripsi, Hashing Data Kesehatan Langkah demi Langkah

Berikut simulasi kirim berkas pasien fiktif memakai OpenSSL (tersedia di Linux, macOS, dan Git Bash di Windows). Untuk belajar, ini cukup; sistem produksi sebaiknya memakai mode terautentikasi seperti AES-GCM lewat pustaka resmi.

1
Buat berkas data fiktif
Gunakan data karangan, jangan pernah data pasien asli untuk latihan.
Terminal
printf '{"no_rm":"RM-2026-0001","nama":"Budi Santoso","diagnosis":"Hipertensi","hasil_lab":"TD 150/95"}' > pasien.json
2
Hitung hash sebelum dikirim
Simpan hasilnya sebagai “sidik jari” asli. Hasil yang benar untuk berkas di atas diawali fa67a46e….
Terminal
sha256sum pasien.json
3
Enkripsi berkas
Opsi -pbkdf2 membuat kunci diturunkan lebih aman dari kata sandi. Hasil ciphertext-mu akan berbeda dari contoh karena salt acak.
Terminal
openssl enc -aes-256-cbc -pbkdf2 -salt -a -in pasien.json -out pasien.enc
4
Kirim ciphertext dan hash lewat kanal berbeda
Misalnya berkas lewat email aman, hash dan kata sandi lewat telepon. Satu kanal bocor tidak langsung membuka semuanya.
5
Dekripsi lalu verifikasi
Penerima mendekripsi, menghitung hash ulang, dan mencocokkannya. Beda satu karakter berarti berkas berubah atau rusak.
Terminal
openssl enc -d -aes-256-cbc -pbkdf2 -a -in pasien.enc -out hasil.json
sha256sum hasil.json   # cocokkan dengan hash dari langkah 2
💡 Tips: Kirim hash lewat jalur lain
Jika hash dan berkas dikirim bersama dan penyerang menguasai kanalnya, dia bisa mengganti keduanya. Kanal terpisah atau HMAC menutup celah itu.
💡 Tips: Checklist cepat sebelum mengirim data pasien
Apakah data terenkripsi? Apakah ada hash/HMAC? Apakah penerima sudah terautentikasi? Apakah kuncinya tidak ikut terkirim bersama datanya? Jawab “ya” untuk keempatnya, baru tekan kirim.

🧭 Kesimpulan

Si Pengacak (enkripsi dan dekripsi) menjaga kerahasiaan, Si Penjaga Keutuhan (hashing dan HMAC) menjaga integritas, dan autentikasi memastikan hanya orang yang tepat yang masuk. Ketiganya saling melengkapi; mengandalkan satu saja meninggalkan celah.

Menguasai kriptografi enkripsi hashing data kesehatan berarti kamu tidak hanya tahu istilahnya, tetapi bisa memilih alat yang tepat untuk setiap risiko. Pengetahuan itu yang membedakan perekam medis yang sekadar patuh dengan yang benar-benar melindungi pasien.

Sudah coba praktiknya? Ceritakan hasil hash-mu atau tanyakan bagian yang masih membingungkan, dan bagikan ke temanmu yang masih mengira “password di-hash” sama dengan “password dienkripsi”.

💬 Tulis komentar📤 Bagikan artikel
Tag
#PertukaranData#PertukaranInformasi#Kesehatan#Kriptografi#Enkripsi#Hashing
Label
Kriptografi Data KesehatanEnkripsi dan HashingKeamanan dan Perlindungan DataPertukaran Informasi Kesehatan

📚 Daftar Referensi

  1. Republik Indonesia. Undang-Undang Nomor 27 Tahun 2022 tentang Pelindungan Data Pribadi.
  2. Kementerian Kesehatan RI. Peraturan Menteri Kesehatan Nomor 24 Tahun 2022 tentang Rekam Medis.
  3. Republik Indonesia. Undang-Undang Nomor 17 Tahun 2023 tentang Kesehatan. (Rujuk bila membahas kerahasiaan data kesehatan; pasal perlu diverifikasi.)
  4. NIST (2001). FIPS 197: Advanced Encryption Standard (AES).
  5. NIST (2015). FIPS 180-4: Secure Hash Standard (SHS).
  6. Krawczyk, H., Bellare, M., & Canetti, R. (1997). RFC 2104: HMAC: Keyed-Hashing for Message Authentication. IETF.
  7. Rescorla, E. (2018). RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3. IETF.
  8. Stallings, W. Cryptography and Network Security: Principles and Practice. Pearson. (Edisi perlu diverifikasi.)
  9. M’Raihi, D., Machani, S., Pei, M., & Rydell, J. (2011). RFC 6238: TOTP: Time-Based One-Time Password Algorithm. IETF.
  10. HL7 International. FHIR Security. https://hl7.org/fhir/security.html (versi FHIR yang berlaku perlu diverifikasi).
  11. NIST. SP 800-63B: Digital Identity Guidelines: Authentication and Lifecycle Management. (Revisi terbaru perlu diverifikasi.)
  12. Stevens, M., Bursztein, E., Karpman, P., Albertini, A., & Markov, Y. (2017). The first collision for full SHA-1. CRYPTO 2017.
  13. Biryukov, A., Dinu, D., Khovratovich, D., & Josefsson, S. (2021). RFC 9106: Argon2 Memory-Hard Function for Password Hashing. IETF.

No comments:

Post a Comment

saifiahmada.com adalah blog belajar programming Indonesia, membahas lengkap materi bahasa pemrograman: code HTML, CSS, Bootstrap, Desain, PHP, MySQL, coding Java, Query, SQL, dan dunia linux