Dalam kriptografi, skema Lai–Massey adalah struktur yang dipakai dalam penyusunan penyandian blok.[1][2] Skema ini dinamai dari Xuejia Lai dan James L. Massey. Skema ini dipakai dalam IDEA dan IDEA NXT.
Skema Lai–Massey memiliki keamanan yang mirip dengan struktur Feistel. Ia juga memiliki keuntungan yang sama terhadap jaringan substitusi–permutasi, yaitu fungsi
tidak harus bisa diinversi.
Detail susunan
![Struktur dasar skema Lai–Massey. Perhatikan bahwa struktur untuk enkripsi dan dekripsi sangat mirip serta hanya berbeda urutan subkunci dan fungsi setengah ronde yang diinversi.](//upload.wikimedia.org/wikipedia/commons/thumb/4/4f/Lai_Massey_scheme_diagram_en.svg/300px-Lai_Massey_scheme_diagram_en.svg.png)
Struktur dasar skema Lai–Massey. Perhatikan bahwa struktur untuk enkripsi dan dekripsi sangat mirip serta hanya berbeda urutan subkunci dan fungsi setengah ronde yang diinversi.
Misalkan
sebagai fungsi ronde,
sebagai fungsi setengah ronde, dan
sebagai subkunci untuk ronde ke-
Proses enkripsi dasar adalah sebagai berikut:
- Bagi blok teks asal menjadi dua bagian sama besar, yaitu
dan ![{\displaystyle R_{0}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5ff95d62573c4e38819568db3e56109fc229e540)
- Untuk tiap ronde ke-
, hitung
![{\displaystyle (L_{i+1}',R_{i+1}')=\operatorname {H} (L_{i}'+T_{i},R_{i}'+T_{i})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/425380389da6ef578e81dd8221fc87e432671313)
- dengan
and ![{\displaystyle (L_{0}',R_{0}')=\operatorname {H} (L_{0},R_{0}).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f9e3ee24c690bbf58aaeef8d14022ef38699dd24)
- Hasilnya adalah teks tersandi
![{\displaystyle (L_{n+1},R_{n+1})=(L_{n+1}',R_{n+1}').}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5004382b56d6099464fd89435873201cc17ea99c)
Proses dekripsi dasar adalah sebagai berikut:
- Bagi blok teks tersandi menjadi dua bagian sama besar, yaitu
dan ![{\displaystyle R_{n+1}.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/296284c62278e7318b7a0167910ea98e462c7724)
- Untuk tiap ronde ke-
, hitung
![{\displaystyle (L_{i}',R_{i}')=\operatorname {H} ^{-1}(L_{i+1}'-T_{i},R_{i+1}'-T_{i})}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ad38c1852f0d392a52f83314c9f886579bd94b51)
- dengan
and ![{\displaystyle (L_{i+1}',R_{i+1}')=\operatorname {H} ^{-1}(L_{i+1},R_{i+1}).}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ecb64c8fbf703dcfe00fed7f2517b175636583ac)
- Hasilnya adalah teks asli
![{\displaystyle (L_{0},R_{0})=(L_{0}',R_{0}').}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d728f91fd8bb25899db98ec635e2bc9b5e7b1729)
Fungsi setengah ronde
diperlukan untuk mencegah serangan perbedaan mudah
Biasanya, diberlakukan ortomorfisme
pada bagian kiri, yaitu
![{\displaystyle \operatorname {H} (L,R)=(\sigma (L),R)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/17409af48dbef56a77646bc59dac4f0aea4f9132)
dengan
dan
adalah permutasi (bijeksi, bukan kotak permutasi). Karena tidak ada ortomorfisme untuk blok berukuran perpangkatan dua, pendekatan ortomorfisme yang dipakai.
Fungsi
dapat bergantung pada kunci. Jika ia tidak bergantung pada kunci, penggunaan terakhirnya bisa dibuang karena inversinya juga akan mudah diketahui.
Diagram di sebelah menjelaskan enkripsi dan dekripsi. Perhatikan bahwa urutan subkunci dibalik dan fungsi setengah ronde diinversi untuk dekripsi; hal ini satu-satunya perbedaan antara enkripsi dan dekripsi.
Lihat pula
Referensi
Daftar pustaka
|
---|
Algoritme umum | |
---|
Algoritme kurang umum | |
---|
Algoritme lainnya | |
---|
Desain | |
---|
Penyerangan (analisis kriptografi) | |
---|
Standardisasi | |
---|
Peralatan/perkakas | |
---|