<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Homomorphic Encryption on kenji.blog</title><link>http://kenji.blog/id/tags/homomorphic-encryption/</link><description>Recent content in Homomorphic Encryption on kenji.blog</description><generator>Hugo -- gohugo.io</generator><language>id</language><copyright>kenjinote</copyright><lastBuildDate>Fri, 11 Sep 2026 11:00:00 +0900</lastBuildDate><atom:link href="http://kenji.blog/id/tags/homomorphic-encryption/index.xml" rel="self" type="application/rss+xml"/><item><title>Apa itu Fully Homomorphic Encryption (FHE)? Menjelaskan Kunci Keamanan Generasi Berikutnya</title><link>http://kenji.blog/id/p/fully-homomorphic-encryption-fhe-explained/</link><pubDate>Fri, 11 Sep 2026 11:00:00 +0900</pubDate><guid>http://kenji.blog/id/p/fully-homomorphic-encryption-fhe-explained/</guid><description>&lt;img src="http://kenji.blog/p/fully-homomorphic-encryption-fhe-explained/img/eyecatch.jpg" alt="Featured image of post Apa itu Fully Homomorphic Encryption (FHE)? Menjelaskan Kunci Keamanan Generasi Berikutnya" />&lt;p>Seiring dengan cloud computing dan teknologi AI yang menjadi infrastruktur masyarakat, pertukaran antara &amp;ldquo;privasi data&amp;rdquo; dan &amp;ldquo;pemanfaatan data&amp;rdquo; telah menjadi salah satu masalah terpenting. Meskipun terdapat permintaan yang meningkat untuk membiarkan AI di cloud menganalisis data yang sangat sensitif seperti data medis, informasi keuangan, dan informasi biometrik pribadi, banyak perusahaan ragu untuk mengirimkan data ke pihak eksternal karena masalah keamanan.&lt;/p>
&lt;p>Teknologi enkripsi konvensional (seperti AES dan RSA) sangat baik dalam melindungi data yang disimpan dalam penyimpanan (Data at Rest) dan data yang mengalir melalui jaringan (Data in Transit). Namun, &lt;strong>saat melakukan pemrosesan (komputasi) seperti pencarian dan machine learning pada data di sisi server (Data in Use), data tersebut harus didekripsi terlebih dahulu untuk kembali ke bentuk plaintext&lt;/strong>. Jika server diretas pada saat dekripsi ini, atau jika administrator internal yang berniat jahat mengintip data tersebut, hal ini akan langsung menyebabkan kebocoran informasi.&lt;/p>
&lt;p>Teknologi impian yang mengatasi kelemahan mendasar dari &amp;ldquo;dekripsi saat pemrosesan&amp;rdquo; ini adalah &lt;strong>Fully Homomorphic Encryption (FHE)&lt;/strong>. Dengan menggunakan FHE, dimungkinkan untuk melakukan proses komputasi sambil menjaga data tetap terenkripsi tanpa mendekripsinya sama sekali, dan hanya mengembalikan ciphertext dari hasil komputasi tersebut kepada klien.&lt;/p>
&lt;p>Artikel ini akan secara mendalam membahas tentang FHE yang merupakan kunci keamanan generasi berikutnya, mulai dari konsep FHE, sejarah, terobosan inovatif oleh Craig Gentry, dasar-dasar matematika (seperti Ring-LWE), tantangan terbesar yaitu &amp;ldquo;noise&amp;rdquo; dan solusinya (bootstrapping), hingga library implementasi terbaru.&lt;/p>
&lt;hr>
&lt;h2 id="1-apa-itu-homomorphic-encryption-konsep-dasar">1. Apa itu Homomorphic Encryption? Konsep Dasar
&lt;/h2>&lt;p>&amp;ldquo;Homomorphic&amp;rdquo; (Homomorfik) adalah istilah dalam aljabar, yang merujuk pada sifat di mana himpunan dengan struktur tertentu dapat dipetakan sambil mempertahankan struktur operasi tersebut. &amp;ldquo;Homomorfisme&amp;rdquo; dalam teori kriptografi adalah sifat di mana &lt;strong>operasi dalam ruang plaintext sesuai dengan operasi dalam ruang ciphertext&lt;/strong>.&lt;/p>
&lt;p>Dinyatakan dalam rumus matematika sederhana, misalkan fungsi enkripsi untuk plaintext $m_1$ dan $m_2$ adalah $E(\cdot)$, dan fungsi dekripsinya adalah $D(\cdot)$. Jika operasi (seperti penjumlahan dan perkalian) pada plaintext adalah $\circ$ dan operasi pada ciphertext adalah $\diamond$, maka hubungan berikut ini berlaku.&lt;/p>
$$ D(E(m_1) \diamond E(m_2)) = m_1 \circ m_2 $$
&lt;p>Artinya, jika kita mendekripsi hasil dari penerapan operasi $\diamond$ pada ciphertext $E(m_1)$ dan $E(m_2)$, hasilnya akan sama dengan hasil operasi $\circ$ pada plaintext aslinya.&lt;/p>
&lt;h3 id="alur-data-dalam-cloud-computing">Alur Data dalam Cloud Computing
&lt;/h3>&lt;p>Arsitektur pemrosesan cloud menggunakan FHE sama sekali berbeda dari arsitektur konvensional. Diagram berikut menunjukkan alur pemrosesan data yang aman menggunakan FHE.&lt;/p>
&lt;div class="mermaid">graph TD
A["Klien (Menyimpan kunci privat)"] -->|1. Enkripsi plaintext x: E(x)| B["Server Cloud (Hanya data terenkripsi)"]
B -->|2. Terapkan fungsi f pada ciphertext: E(f(x))| B
B -->|3. Ciphertext dari hasil perhitungan E(y)| A
A -->|4. Dekripsi dengan kunci privat: y = f(x)| A
style A fill:#d4edda,stroke:#28a745
style B fill:#f8d7da,stroke:#dc3545&lt;/div>
&lt;p>Server menerima data terenkripsi $E(x)$, tetapi tidak pernah dapat mengetahui isi data tersebut karena tidak memiliki kunci privat. Namun, dengan memanfaatkan properti FHE, server dapat menerapkan fungsi $f$ (misalnya, model inferensi machine learning) pada ciphertext untuk menghasilkan $E(f(x))$. Klien menerima hasil ini, dan dengan mendekripsinya menggunakan kunci privat mereka sendiri, klien mendapatkan hasil yang diinginkan $y = f(x)$.&lt;/p>
&lt;hr>
&lt;h2 id="2-sejarah-evolusi-homomorphic-encryption-phe-she-fhe">2. Sejarah Evolusi Homomorphic Encryption: PHE, SHE, FHE
&lt;/h2>&lt;p>Homomorphic Encryption tidak langsung mencapai bentuk &amp;ldquo;sempurna&amp;rdquo; yang ada saat ini sekaligus. Ini secara luas diklasifikasikan ke dalam 3 tahap berdasarkan jenis dan jumlah operasi yang dapat direalisasikan.&lt;/p>
&lt;h3 id="partially-homomorphic-encryption-phe">Partially Homomorphic Encryption (PHE)
&lt;/h3>&lt;p>PHE adalah skema enkripsi yang memungkinkan operasi penjumlahan atau perkalian, &lt;strong>salah satu dari keduanya saja&lt;/strong>, tanpa batas. Faktanya, enkripsi dengan sifat ini telah ada sejak lama.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Enkripsi RSA (Homomorfisme terhadap perkalian)&lt;/strong>
Enkripsi RSA secara tidak sengaja memiliki homomorfisme perkalian. Jika plaintext $m_1, m_2$ dan kunci publik $(e, N)$:
$$ E(m_1) = m_1^e \pmod N $$
$$ E(m_2) = m_2^e \pmod N $$
Jika kita mengalikannya:
$$ E(m_1) \times E(m_2) = (m_1 \cdot m_2)^e \pmod N = E(m_1 \times m_2) $$
Dengan cara ini, perkalian ciphertext berhubungan dengan perkalian plaintext.&lt;/li>
&lt;li>&lt;strong>Enkripsi Paillier (Homomorfisme terhadap penjumlahan)&lt;/strong>
Ditemukan pada tahun 1999, enkripsi Paillier memiliki homomorfisme terhadap penjumlahan. Ini telah digunakan secara praktis dalam e-voting (menghitung suara terenkripsi dan hanya mendekripsi hasil akhirnya).&lt;/li>
&lt;/ul>
&lt;h3 id="somewhat-homomorphic-encryption-she">Somewhat Homomorphic Encryption (SHE)
&lt;/h3>&lt;p>Ini adalah metode di mana &lt;strong>baik&lt;/strong> penjumlahan maupun perkalian dapat dilakukan, tetapi ada &lt;strong>batasan pada jumlah operasi (kedalaman sirkuit)&lt;/strong> yang dapat dihitung. Karena akumulasi &amp;ldquo;noise&amp;rdquo; yang akan dibahas nanti, dekripsi menjadi mustahil setelah sejumlah perkalian tertentu dilakukan. Enkripsi BGN (Boneh-Goh-Nissim) dari tahun 2005 termasuk dalam kategori ini, tetapi memiliki keterbatasan dalam melakukan komputasi kompleks yang praktis (seperti deep learning).&lt;/p>
&lt;h3 id="fully-homomorphic-encryption-fhe">Fully Homomorphic Encryption (FHE)
&lt;/h3>&lt;p>Ini adalah skema enkripsi yang dapat menjalankan baik penjumlahan maupun perkalian dengan &lt;strong>jumlah yang tidak terbatas&lt;/strong>. Mirip dengan Turing completeness dalam teori informasi, jika kita dapat menggabungkan penjumlahan (setara dengan XOR) dan perkalian (setara dengan AND) tanpa batas, itu berarti secara prinsip, setiap fungsi atau algoritma yang dapat dihitung dapat dieksekusi dalam keadaan terenkripsi.&lt;/p>
&lt;p>FHE telah lama disebut sebagai &amp;ldquo;Cawan Suci dunia kriptografi&amp;rdquo;, dan bahkan dikatakan mustahil untuk direalisasikan. Namun, pada tahun 2009, &lt;strong>Craig Gentry&lt;/strong>, yang saat itu adalah seorang mahasiswa program doktor di Universitas Stanford, mengusulkan skema FHE pertama menggunakan Ideal Lattices, yang mengejutkan dunia.&lt;/p>
&lt;hr>
&lt;h2 id="3-fondasi-matematika-fhe-masalah-lwe-dan-ring-lwe">3. Fondasi Matematika FHE: Masalah LWE dan Ring-LWE
&lt;/h2>&lt;p>Sebagian besar skema FHE utama saat ini didasarkan pada &lt;strong>Masalah LWE (Learning With Errors)&lt;/strong>, yang merupakan masalah matematika sulit dalam &amp;ldquo;Lattice-based Cryptography (Kriptografi berbasis kisi)&amp;rdquo;, yang juga dikenal sebagai kriptografi tahan kuantum (Post-Quantum Cryptography).&lt;/p>
&lt;h3 id="pemahaman-intuitif-tentang-masalah-lwe">Pemahaman Intuitif tentang Masalah LWE
&lt;/h3>&lt;p>Menyelesaikan persamaan linear simultan adalah mudah jika Anda menggunakan metode seperti eliminasi Gauss.&lt;/p>
$$ \begin{cases} 3s_1 + 4s_2 + 2s_3 \equiv 12 \pmod{17} \\ 1s_1 + 9s_2 + 5s_3 \equiv 8 \pmod{17} \\ \vdots \end{cases} $$
&lt;p>Namun, apa yang terjadi jika Anda menambahkan &amp;ldquo;kesalahan (noise) acak&amp;rdquo; $e$ yang sangat kecil ke hasil persamaan ini?&lt;/p>
$$ \begin{cases} 3s_1 + 4s_2 + 2s_3 + e_1 \equiv 13 \pmod{17} \\ 1s_1 + 9s_2 + 5s_3 + e_2 \equiv 7 \pmod{17} \\ \vdots \end{cases} $$
&lt;p>Dengan hanya menambahkan error $e$ ini, masalah untuk menemukan vektor variabel rahasia $\vec{s}$ berubah menjadi masalah NP-hard yang sulit dipecahkan bahkan jika menggunakan superkomputer saat ini atau komputer kuantum. Inilah masalah LWE.&lt;/p>
&lt;h3 id="masalah-ring-lwe-rlwe">Masalah Ring-LWE (RLWE)
&lt;/h3>&lt;p>Masalah LWE standar melibatkan operasi matriks, yang menyebabkan ukuran kunci yang sangat besar (terkadang dalam gigabyte) dan efisiensi komputasi yang buruk. Untuk mengatasi hal ini, diperkenalkanlah &lt;strong>masalah Ring-LWE (RLWE)&lt;/strong>, yang menggunakan operasi pada gelanggang polinomial (polynomial rings).&lt;/p>
&lt;p>Pada RLWE, elemen-elemen tersebut termasuk dalam gelanggang polinomial $R_q = \mathbb{Z}_q[x] / (x^N + 1)$ (di mana $N$ adalah pangkat dari 2, dan $q$ adalah bilangan prima sebagai modulus).
Jika kunci privat adalah polinomial $s(x)$, dengan polinomial acak $a(x)$, dan polinomial noise kecil $e(x)$, maka pasangan kunci publiknya adalah sebagai berikut.&lt;/p>
$$ (a(x), b(x)) \quad \text{dimana} \quad b(x) = -a(x) \cdot s(x) + e(x) \pmod q $$
&lt;p>Selama enkripsi, properti polinomial ini digunakan untuk mengenkode plaintext $m(x)$ dan menghasilkan ciphertext.&lt;/p>
&lt;hr>
&lt;h2 id="4-hambatan-terbesar-noise-dan-bootstrapping-gentry">4. Hambatan Terbesar &amp;ldquo;Noise&amp;rdquo; dan Bootstrapping Gentry
&lt;/h2>&lt;p>Konsep paling penting dalam memahami FHE adalah &lt;strong>&amp;ldquo;Manajemen Noise&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;p>Dalam kriptografi berbasis LWE/RLWE, &amp;ldquo;noise (error)&amp;rdquo; kecil sengaja disertakan untuk menjamin keamanan.
Proses mendekripsi ciphertext $c$ dari plaintext $m$ dapat diekspresikan secara kasar dengan rumus berikut.&lt;/p>
$$ D(c) = (c \cdot s) \pmod q = m + \text{noise} $$
&lt;p>Selama dekripsi, plaintext yang benar $m$ diperoleh dengan menghilangkan &lt;code>noise&lt;/code> ini melalui proses seperti pembulatan (rounding). Namun, ketika melakukan operasi homomorfik (terutama perkalian) di antara ciphertext, noise ini akan berlipat ganda secara dramatis.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Penjumlahan Homomorfik&lt;/strong>: Noise meningkat secara aditif ($e_1 + e_2$). Ini adalah peningkatan yang relatif lambat.&lt;/li>
&lt;li>&lt;strong>Representasi matematika dari homomorfisme melalui penjumlahan homomorfik&lt;/strong>:
$$ E(m_1) \oplus E(m_2) = E(m_1 + m_2) $$&lt;/li>
&lt;li>&lt;strong>Perkalian Homomorfik&lt;/strong>: Noise meledak secara multiplikatif (karena mencakup komponen seperti $e_1 \times e_2$). Hanya dengan melakukan perkalian beberapa kali, noise akan melampaui ambang batas $q/2$, membuat proses pembulatan yang benar menjadi tidak mungkin, dan dekripsi akan gagal.&lt;/li>
&lt;li>&lt;strong>Representasi matematika dari homomorfisme melalui perkalian homomorfik&lt;/strong>:
$$ E(m_1) \otimes E(m_2) = E(m_1 \times m_2) $$&lt;/li>
&lt;/ul>
&lt;p>Inilah sebabnya mengapa FHE tidak dapat direalisasikan untuk waktu yang lama, dan hanya terbatas pada SHE (dengan batas jumlah).&lt;/p>
&lt;h3 id="keajaiban-bootstrapping">Keajaiban Bootstrapping
&lt;/h3>&lt;p>Kontribusi jenius dari Craig Gentry adalah penemuan teknik pengurangan noise yang disebut &lt;strong>&amp;ldquo;Bootstrapping&amp;rdquo;&lt;/strong>. Ini adalah pergeseran paradigma (paradigm shift) dalam kriptografi.&lt;/p>
&lt;p>Secara intuitif, operasi ini berarti &amp;ldquo;sebelum ciphertext rusak karena dipenuhi noise, &amp;lsquo;dekripsi&amp;rsquo; ia untuk membersihkannya selagi masih dalam kondisi terenkripsi, lalu masukkan ke dalam ciphertext baru.&amp;rdquo;&lt;/p>
&lt;ol>
&lt;li>Misalkan ada ciphertext dengan noise tinggi $C_{noisy}$.&lt;/li>
&lt;li>Klien terlebih dahulu memberikan kepada server kunci privat $sk$ yang &amp;ldquo;dienkripsi dengan kunci publik&amp;rdquo; $E_{pk}(sk)$ (ini disebut kunci bootstrapping).&lt;/li>
&lt;li>Server mengeksekusi &lt;strong>sirkuit dekripsi (Decryption Circuit)&lt;/strong> secara homomorfik pada $C_{noisy}$.&lt;/li>
&lt;li>Secara khusus, ia melakukan &amp;ldquo;dekripsi dalam ruang terenkripsi&amp;rdquo; pada $E_{pk}(C_{noisy})$ menggunakan $E_{pk}(sk)$.&lt;/li>
&lt;li>Karena sirkuit dekripsi ini sendiri adalah operasi homomorfik yang menghasilkan noise baru, noise dari ciphertext baru yang dihasilkan $C_{fresh}$ akan di-reset ke &amp;ldquo;tingkat tetap&amp;rdquo; tertentu.&lt;/li>
&lt;/ol>
&lt;div class="mermaid">graph LR
A["Ciphertext Noise Tinggi C_noisy"] --> B["Sirkuit Dekripsi Homomorfik (Eval_Dec)"]
C["Kunci privat terenkripsi E(sk)"] --> B
B --> D["Ciphertext Noise Rendah C_fresh"]
style B fill:#ffeeba,stroke:#ffc107&lt;/div>
&lt;p>Dengan menjalankan bootstrapping ini secara berkala selama perhitungan, secara teoritis dimungkinkan untuk menghitung sirkuit dengan kedalaman tak terbatas (pencapaian FHE). Namun, skema awal Gentry sangat memakan biaya komputasi, dengan proses bootstrapping ini membutuhkan waktu puluhan menit hingga beberapa jam untuk sekali proses.&lt;/p>
&lt;hr>
&lt;h2 id="5-generasi-fhe-dan-evolusi-skema-utama">5. Generasi FHE dan Evolusi Skema Utama
&lt;/h2>&lt;p>Menuju implementasi praktis FHE, para kriptografer di seluruh dunia telah berlomba untuk meningkatkan algoritmanya. Saat ini, FHE diklasifikasikan ke dalam 4 generasi/keluarga utama.&lt;/p>
&lt;h3 id="generasi-kedua-komputasi-eksak-pada-bilangan-bulat-bgv-bfv">Generasi Kedua: Komputasi Eksak pada Bilangan Bulat (BGV, BFV)
&lt;/h3>&lt;p>Skema &lt;strong>BGV (Brakerski-Gentry-Vaikuntanathan)&lt;/strong> dan &lt;strong>BFV (Brakerski/Fan-Vercauteren)&lt;/strong> yang muncul sekitar tahun 2011-2012. Skema ini didasarkan pada RLWE dan cocok untuk aritmatika modular (perhitungan eksak) pada bilangan bulat.
Skema ini mendukung teknologi batching seperti SIMD (Single Instruction, Multiple Data), yang ditandai dengan kemampuannya untuk mengemas ribuan slot data ke dalam satu ciphertext polinomial besar dan menghitungnya secara paralel sekaligus.&lt;/p>
&lt;h3 id="generasi-ketiga-akselerasi-bootstrapping-gsw-fhew-tfhe">Generasi Ketiga: Akselerasi Bootstrapping (GSW, FHEW, TFHE)
&lt;/h3>&lt;p>Skema &lt;strong>GSW (Gentry-Sahai-Waters)&lt;/strong> pada tahun 2013 menyederhanakan struktur FHE. Dan dari perkembangan ini, salah satu pendekatan utama saat ini adalah &lt;strong>TFHE (Fast Fully Homomorphic Encryption over the Torus)&lt;/strong>.
Fitur dari TFHE adalah bahwa bootstrapping-nya sangat cepat (dalam urutan milidetik). Ini unggul dalam operasi tingkat gerbang logis (sirkuit logika seperti AND, XOR) dan karena ukuran ciphertext-nya relatif kecil, ia cocok untuk mengevaluasi sirkuit logika acak dengan kecepatan tinggi.&lt;/p>
&lt;h3 id="generasi-keempat-spesialisasi-dalam-komputasi-perkiraan-dan-machine-learning-ckks">Generasi Keempat: Spesialisasi dalam Komputasi Perkiraan dan Machine Learning (CKKS)
&lt;/h3>&lt;p>Skema &lt;strong>CKKS (Cheon-Kim-Kim-Song)&lt;/strong> yang diusulkan oleh Cheon dkk. pada tahun 2017 adalah teknologi definitif dalam pelestarian privasi untuk AI dan machine learning saat ini.
Sementara FHE sebelumnya berfokus pada &amp;ldquo;komputasi bilangan bulat eksak&amp;rdquo;, CKKS mendukung &lt;strong>&amp;ldquo;komputasi perkiraan floating-point&amp;rdquo;&lt;/strong> sambil tetap terenkripsi. Skema ini menunjukkan kinerja luar biasa dalam komputasi bilangan riil di mana sedikit kesalahan (error) diperbolehkan, seperti dalam pelatihan dan inferensi neural network.&lt;/p>
&lt;p>Tabel berikut merangkum cara memilih skema berdasarkan tujuan.&lt;/p>
&lt;table>
&lt;thead>
&lt;tr>
&lt;th style="text-align:left">Nama Skema&lt;/th>
&lt;th style="text-align:left">Tipe Data yang Dikuasai&lt;/th>
&lt;th style="text-align:left">Use Case yang Disarankan&lt;/th>
&lt;th style="text-align:left">Fitur&lt;/th>
&lt;/tr>
&lt;/thead>
&lt;tbody>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>BFV / BGV&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Bilangan Bulat (Integer)&lt;/td>
&lt;td style="text-align:left">Komputasi statistik eksak, agregasi data keuangan, pencarian DB&lt;/td>
&lt;td style="text-align:left">Throughput tinggi menggunakan batching SIMD&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>CKKS&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Bilangan Riil (Real/Complex)&lt;/td>
&lt;td style="text-align:left">Machine Learning (DNN, regresi logistik), pemrosesan sinyal&lt;/td>
&lt;td style="text-align:left">Akselerasi dengan komputasi perkiraan, penskalaan ulang (rescaling)&lt;/td>
&lt;/tr>
&lt;tr>
&lt;td style="text-align:left">&lt;strong>TFHE&lt;/strong>&lt;/td>
&lt;td style="text-align:left">Nilai Boolean (Boolean)&lt;/td>
&lt;td style="text-align:left">Sirkuit logika acak, pencarian string, evaluasi fungsi non-linear&lt;/td>
&lt;td style="text-align:left">Bootstrapping ultra-cepat (tingkat milidetik)&lt;/td>
&lt;/tr>
&lt;/tbody>
&lt;/table>
&lt;hr>
&lt;h2 id="6-praktik-library-fhe-dan-kode-konseptual">6. Praktik: Library FHE dan Kode Konseptual
&lt;/h2>&lt;p>Saat ini, terdapat banyak library open-source yang tersedia yang memungkinkan penggunaan FHE tanpa perlu memiliki pengetahuan mendalam tentang kriptografi.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Microsoft SEAL (Simple Encrypted Arithmetic Library)&lt;/strong>: Library C++ yang mendukung BFV, BGV, dan CKKS. Ini adalah salah satu standar industri. Binding Python-nya, &lt;strong>TenSEAL&lt;/strong>, populer di kalangan engineer AI.&lt;/li>
&lt;li>&lt;strong>Zama (Concrete)&lt;/strong>: Framework berbasis TFHE. Dapat ditulis dengan Rust/Python, dan menyediakan fungsionalitas (Concrete ML) untuk mengompilasi model PyTorch yang ada agar berjalan pada FHE.&lt;/li>
&lt;li>&lt;strong>OpenFHE&lt;/strong>: Penerus PALISADE, library C++ komprehensif yang mendukung semua skema utama.&lt;/li>
&lt;/ul>
&lt;h3 id="contoh-pemrograman-fhe-menggunakan-python-tenseal">Contoh Pemrograman FHE menggunakan Python (TenSEAL)
&lt;/h3>&lt;p>Berikut adalah contoh kode Python konseptual yang menggunakan skema CKKS untuk menambahkan dan mengalikan vektor bilangan riil yang masih dalam keadaan terenkripsi.&lt;/p>
&lt;div class="highlight">&lt;div class="chroma">
&lt;table class="lntable">&lt;tr>&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code>&lt;span class="lnt"> 1
&lt;/span>&lt;span class="lnt"> 2
&lt;/span>&lt;span class="lnt"> 3
&lt;/span>&lt;span class="lnt"> 4
&lt;/span>&lt;span class="lnt"> 5
&lt;/span>&lt;span class="lnt"> 6
&lt;/span>&lt;span class="lnt"> 7
&lt;/span>&lt;span class="lnt"> 8
&lt;/span>&lt;span class="lnt"> 9
&lt;/span>&lt;span class="lnt">10
&lt;/span>&lt;span class="lnt">11
&lt;/span>&lt;span class="lnt">12
&lt;/span>&lt;span class="lnt">13
&lt;/span>&lt;span class="lnt">14
&lt;/span>&lt;span class="lnt">15
&lt;/span>&lt;span class="lnt">16
&lt;/span>&lt;span class="lnt">17
&lt;/span>&lt;span class="lnt">18
&lt;/span>&lt;span class="lnt">19
&lt;/span>&lt;span class="lnt">20
&lt;/span>&lt;span class="lnt">21
&lt;/span>&lt;span class="lnt">22
&lt;/span>&lt;span class="lnt">23
&lt;/span>&lt;span class="lnt">24
&lt;/span>&lt;span class="lnt">25
&lt;/span>&lt;span class="lnt">26
&lt;/span>&lt;span class="lnt">27
&lt;/span>&lt;span class="lnt">28
&lt;/span>&lt;span class="lnt">29
&lt;/span>&lt;span class="lnt">30
&lt;/span>&lt;span class="lnt">31
&lt;/span>&lt;span class="lnt">32
&lt;/span>&lt;span class="lnt">33
&lt;/span>&lt;span class="lnt">34
&lt;/span>&lt;span class="lnt">35
&lt;/span>&lt;/code>&lt;/pre>&lt;/td>
&lt;td class="lntd">
&lt;pre tabindex="0" class="chroma">&lt;code class="language-python" data-lang="python">&lt;span class="line">&lt;span class="cl">&lt;span class="kn">import&lt;/span> &lt;span class="nn">tenseal&lt;/span> &lt;span class="k">as&lt;/span> &lt;span class="nn">ts&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 1. Setup Konteks (Termasuk pembuatan kunci)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Menggunakan skema CKKS dan mengatur derajat polinomial modulus ke 8192&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">context&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ts&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">context&lt;/span>&lt;span class="p">(&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">ts&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">SCHEME_TYPE&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">CKKS&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">poly_modulus_degree&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="mi">8192&lt;/span>&lt;span class="p">,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="n">coeff_mod_bit_sizes&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="p">[&lt;/span>&lt;span class="mi">60&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">40&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">40&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mi">60&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">context&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">generate_galois_keys&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">context&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">global_scale&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="mi">2&lt;/span>&lt;span class="o">**&lt;/span>&lt;span class="mi">40&lt;/span> &lt;span class="c1"># Scaling factor untuk bilangan riil&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 2. Sisi Klien: Enkripsi data&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">vector1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mf">1.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">2.5&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">3.5&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">vector2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="p">[&lt;/span>&lt;span class="mf">2.0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">3.0&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="mf">4.0&lt;/span>&lt;span class="p">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Mengonversi vektor plaintext menjadi ciphertext (Secara ideal dieksekusi di sisi klien)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc_v1&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ts&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ckks_vector&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">context&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">vector1&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc_v2&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">ts&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">ckks_vector&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="n">context&lt;/span>&lt;span class="p">,&lt;/span> &lt;span class="n">vector2&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 3. Sisi Server: Komputasi dalam keadaan terenkripsi (Perlindungan Data in Use)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Server tidak mengetahui plaintext, tetapi dapat melakukan penjumlahan dan perkalian&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc_add&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">enc_v1&lt;/span> &lt;span class="o">+&lt;/span> &lt;span class="n">enc_v2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">enc_mul&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">enc_v1&lt;/span> &lt;span class="o">*&lt;/span> &lt;span class="n">enc_v2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 4. Sisi Klien: Mendekripsi hasil&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Hanya klien yang memiliki kunci privat yang dapat melihat hasilnya&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">res_add&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">enc_add&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decrypt&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="n">res_mul&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="n">enc_mul&lt;/span>&lt;span class="o">.&lt;/span>&lt;span class="n">decrypt&lt;/span>&lt;span class="p">()&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Hasil penjumlahan setelah dekripsi: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">res_add&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Contoh Output: [3.5000001, 5.5000001, 7.5000002] (Mengandung kesalahan sangat kecil karena komputasi perkiraan)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">print&lt;/span>&lt;span class="p">(&lt;/span>&lt;span class="sa">f&lt;/span>&lt;span class="s2">&amp;#34;Hasil perkalian setelah dekripsi: &lt;/span>&lt;span class="si">{&lt;/span>&lt;span class="n">res_mul&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="p">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Contoh Output: [3.0000002, 7.5000005, 14.0000003]&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/td>&lt;/tr>&lt;/table>
&lt;/div>
&lt;/div>&lt;p>Seperti yang bisa dilihat dari kode di atas, perhitungan antara ciphertext dapat ditulis secara intuitif dengan melakukan overload pada operator Python biasa, seperti &lt;code>enc_v1 + enc_v2&lt;/code>. Di sisi server, komputasi vektor diselesaikan tanpa perlu mengetahui isi dari vektor tersebut.&lt;/p>
&lt;hr>
&lt;h2 id="7-tantangan-fhe-performa-dan-akselerasi-hardware">7. Tantangan FHE: Performa dan Akselerasi Hardware
&lt;/h2>&lt;p>Meskipun FHE memberikan keamanan yang secara teoritis sempurna, tantangan terbesar dalam implementasi praktisnya adalah &lt;strong>&amp;ldquo;overhead kinerja (performance overhead)&amp;rdquo;&lt;/strong>.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Overhead Komputasi&lt;/strong>: Dibandingkan dengan komputasi pada plaintext, komputasi pada ciphertext membutuhkan waktu ribuan hingga puluhan ribu kali lebih lambat di CPU. Perkalian polinomial dan bootstrapping memerlukan perhitungan FFT (Fast Fourier Transform) dan NTT (Number Theoretic Transform) dalam jumlah yang sangat besar.&lt;/li>
&lt;li>&lt;strong>Ekspansi Ukuran Data (Ciphertext Expansion)&lt;/strong>: Plaintext yang hanya berukuran beberapa byte bisa membengkak menjadi beberapa megabyte saat dienkripsi. Ini sangat membebani bandwidth memori dan bandwidth jaringan.&lt;/li>
&lt;/ol>
&lt;h3 id="pendekatan-solusi-melalui-hardware">Pendekatan Solusi melalui Hardware
&lt;/h3>&lt;p>Untuk mengatasi overhead ini, pengembangan akselerator hardware khusus FHE (mendukung ASIC, FPGA, GPU) sedang dilakukan di seluruh dunia.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Akselerasi GPU&lt;/strong>: Upaya sedang dilakukan untuk memparalelkan komputasi NTT dan bootstrapping menggunakan GPU bertenaga seperti NVIDIA, dan akselerasi puluhan kali lipat dibandingkan dengan implementasi perangkat lunak telah dilaporkan (contoh: 100x.ai, backend TFHE-rs CUDA dari Zama).&lt;/li>
&lt;li>&lt;strong>Proyek DARPA DPRIVE&lt;/strong>: Defense Advanced Research Projects Agency (DARPA) dari AS mendorong proyek pengembangan hardware khusus &amp;ldquo;DPRIVE (Data Protection in Virtual Environments)&amp;rdquo; untuk meningkatkan kecepatan komputasi FHE ke tingkat yang setara dengan kecepatan pemrosesan plaintext (dalam overhead 10x). Intel, Microsoft, dan Intellectual Ventures berpartisipasi dalam proyek ini.&lt;/li>
&lt;li>&lt;strong>Kemunculan FPU (FHE Processing Unit)&lt;/strong>: Startup seperti Cornami dan Optalysys sedang mengembangkan chip khusus FHE yang menggunakan komputasi optik (optical computing) atau arsitektur silikon khusus.&lt;/li>
&lt;/ul>
&lt;p>Dalam waktu dekat, seperti halnya NPU (Neural Processing Unit) pada AI, kita mungkin akan melihat era di mana &amp;ldquo;FPU&amp;rdquo; dipasang sebagai standar pada server dan infrastruktur cloud.&lt;/p>
&lt;hr>
&lt;h2 id="8-use-case-yang-diharapkan">8. Use Case yang Diharapkan
&lt;/h2>&lt;p>Sekarang setelah FHE mendekati kecepatan yang praktis, inovasi destruktif diharapkan terjadi di berbagai bidang berikut.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Perlindungan Privasi dalam Analisis Medis dan Genomik&lt;/strong>:
Dengan membiarkan AI di cloud melatih data rekam medis pasien atau data DNA yang dimiliki oleh banyak rumah sakit sambil tetap terenkripsi dengan FHE, pengembangan model diagnosis kanker akurasi tinggi atau penemuan obat baru dapat dilakukan tanpa melanggar undang-undang privasi (seperti HIPAA atau GDPR).&lt;/li>
&lt;li>&lt;strong>Deteksi Penipuan dan Anti-Pencucian Uang (AML) untuk Institusi Keuangan&lt;/strong>:
Bank-bank yang saling bersaing dapat mencocokkan data masing-masing dalam keadaan terenkripsi tanpa mengungkapkan informasi rekening pelanggan atau riwayat transaksi, sehingga memungkinkan analisis antar bank (cross-bank) untuk mendeteksi jaringan transfer penipuan yang besar.&lt;/li>
&lt;li>&lt;strong>API Inferensi AI yang Aman (MaaS: Model as a Service)&lt;/strong>:
Pengguna dapat mengenkripsi audio, gambar wajah, atau prompt mereka sendiri dan mengirimkannya ke layanan AI (seperti LLM seperti ChatGPT). Penyedia AI menghasilkan respons tanpa mengetahui input pengguna sama sekali, dan mengembalikannya sebagai ciphertext. Dengan ini, kekhawatiran tentang &amp;ldquo;AI yang mempelajari atau mengintip informasi pribadi&amp;rdquo; dapat sepenuhnya dihilangkan.&lt;/li>
&lt;/ol>
&lt;hr>
&lt;h2 id="9-kesimpulan-masa-depan-kriptografi-menuju-komputasi-tak-terlihat">9. Kesimpulan: Masa Depan Kriptografi menuju &amp;ldquo;Komputasi Tak Terlihat&amp;rdquo;
&lt;/h2>&lt;p>Sama seperti penemuan kriptografi kunci publik (RSA) pada tahun 1970-an yang memungkinkan komunikasi aman di internet (seperti HTTPS), penemuan FHE oleh Craig Gentry adalah salah satu tonggak sejarah paling penting dalam sejarah kriptografi.&lt;/p>
&lt;p>Saat ini, Fully Homomorphic Encryption (FHE) telah melompat dari teori di laboratorium, dan memasuki tahap di mana Microsoft, IBM, Intel, Google, dan banyak startup bersaing keras menuju implementasi praktisnya. Walaupun tantangan dalam biaya komputasi dan ukuran data masih ada, perbaikan kinerja terus berlanjut melampaui Hukum Moore berkat penyempurnaan algoritma dan evolusi akselerator hardware.&lt;/p>
&lt;p>Beberapa tahun dari sekarang, &amp;ldquo;komputasi data sambil tetap terenkripsi&amp;rdquo; tidak akan menjadi sesuatu yang istimewa, melainkan akan menjadi praktik perlindungan data standar dalam layanan cloud. FHE adalah kunci keamanan generasi berikutnya yang merealisasikan &lt;strong>keseimbangan tertinggi antara privasi absolut dan pemanfaatan data&lt;/strong> dalam masyarakat yang digerakkan oleh data.&lt;/p></description></item></channel></rss>