Dipublikasikan: 11 Desember 2025
Terakhir diperbarui: 11 Desember 2025
Dipublikasikan: 11 Desember 2025
Terakhir diperbarui: 11 Desember 2025
Raymond Kelvin Nando — ASN.1 CER merupakan aturan pengkodean deterministik untuk representasi data ASN.1 menggunakan model TLV (Tag–Length–Value). CER (Canonical Encoding Rules) diciptakan untuk menyediakan encoding yang konsisten dan tidak ambigu, sehingga setiap struktur data ASN.1 hanya memiliki satu bentuk representasi yang valid. CER adalah turunan dari BER, tetapi dengan aturan ketat yang menghilangkan fleksibilitas berlebih agar dapat digunakan dalam sistem yang memerlukan konsistensi penuh.
Daftar Isi
ASN.1 CER adalah aturan encoding yang mendefinisikan cara tunggal dan konsisten untuk mewakili struktur ASN.1 dalam bentuk TLV. CER menghilangkan variasi encoding yang diperbolehkan dalam BER—misalnya representasi panjang dan format konstruktif—dengan tujuan menciptakan standar deterministik. CER terutama digunakan untuk data yang terlalu besar untuk DER, atau untuk struktur yang memerlukan indefinite length encoding yang tetap konsisten.
CER memastikan bahwa:
CER dikembangkan oleh komite ITU-T dan ISO sebagai bagian dari keluarga ASN.1 encoding rules pada akhir 1980-an hingga 1990-an. Setelah BER dianggap terlalu fleksibel dan rawan kesalahan parsing, muncul kebutuhan akan metode encoding yang lebih presisi. CER dan DER diciptakan sebagai dua solusi:
CER lebih jarang digunakan dibanding DER, tetapi tetap dipakai dalam beberapa protokol telekomunikasi, sistem kios pemerintah, metadata besar, serta beberapa format sertifikat atau struktur direktori besar.
Prinsip CER mengikuti TLV namun dengan aturan kanonik yang sangat ketat. Beberapa prinsipnya:
Penutup value menggunakan EOC (End-of-Content):
00 00
Karena INTEGER adalah tipe primitif sederhana, bentuk CER sama seperti DER:
Tag: 02
Length: 01
Value: 05
Output:
02 01 05
OCTET STRING panjang besar harus dipecah dalam blok:
Input: OCTET STRING berisi data panjang 300 byte
CER Output:
Tag: 24 (constructed)
Length: 80 (indefinite)
Diikuti beberapa blok OCTET STRING primitif, misalnya masing-masing 100 byte:
24 80
04 64 <100 byte>
04 64 <100 byte>
04 2C <44 byte>
00 00
SEQUENCE selalu menggunakan definite length atau indefinite length sesuai aturan CER. Untuk konstruktif besar, CER memilih indefinite:
SEQUENCE:
30 80
02 01 0A
01 01 FF
00 00
Jika BIT STRING sangat besar, CER memecahnya seperti OCTET STRING konstruktif.
Kelebihan:
Kekurangan: