subscribe to RSS

KRIPTOGRAFI

Posted by Ae89 on Sabtu, 08 Mei 2010

Tulisan ini sebenarnya penting untuk kalian yang concern terhadap masalah keamanan. Bagaimana tidak,kan kriptografi juga berhubungan erat dengan pengaman informasi. Inilah perkenalan awal mengenai kriptografi.
Saat ini penggunaan internet sebagai sarana pertukaran informasi memang sudah tak asing lagi bagi kita. Maraknya penggunaan internet ini menyebabkan munculnya masalah dalam keamanan pada media transmisinya.  Bukan hanya itu, bahkan terlahirlah para eavesdropper,hacker, cracker dan lainnya. maka salah satu cara untuk menanggulanginya adalah dengan menerapkan kriptografi.
Apakah itu kriptografi ?
Kriptografi adalah ilmu dan seni untuk menjaga keamanan pesan ( menurut Bruce Schneier, Applied Cryptography). Selain pengertian tersebut terdapat pula pengertian ilmu yang mempelajari teknik-teknik matematika yang berhubungan dengan aspek keamanan informasi seperti confidentiality, data integrity, authentication, non-repudiation dan access control (Alfred J. Menezes, P. van Oorschot and S. Vanstone – Handbook of Applied Cryptography).

  • Confidentiality (kerahasiaan), adalah layanan yang digunakan untuk menjaga isi dari informasi dari siapapun kecuali yang memiliki otoritas untuk mengetahui informasi yang telah dienkripsi.

  • Data integrity, adalah berhubungan dengan penjagaan dari perubahan data secara tidak sah. Untuk menjaga integritas data, sistem harus memiliki kemampuan untuk mendeteksi manipulasi data oleh pihak-pihak yang tidak berhak, antara lain penyisipan, penghapusan, dan pensubsitusian data lain kedalam data yang sebenarnya.

  • Authentication, berhubungan dengan pengidentifikasian, baik secara kesatuan sistem maupun informasi itu sendiri. Dua pihak yang saling berkomunikasi harus saling memperkenalkan diri. Informasi yang dikirimkan melalui media transmisi harus diautentikasi keaslian, isi data, waktu pengiriman,dll .

  • Non-repudiation (nirpenyangkalan), merupakan usaha untuk mencegah terjadinya penyangkalan terhadap pengiriman suatu informasi oleh pengirim pesan.

  • SEJARAH KRIPTOGRAFI

    Posted by Ae89 on


    Kriptografi merupakan teknik penyembunyian informasi rahasia, biasanya berupa teknik matematis, coding, maupun cara lainnya dengan tujuan agar pesan yang disimpan atau ditransmisikan hanya bisa diketahui oleh pihak yang berkepentingan saja.
    Sebenarnya kriptografi sudah berkembang sejak 4000 tahun yang lalu, tepatnya di Mesir yaitu berupa Hieroglyph. Semua yang membahas sejarah kriptografi ini dapat secara lengkap kita pelajari dalam buku karangan David Kahn yang berjudul The Codebreakers. Teknik penyembunyian pesan pada zaman dahulu kebanyakan menggunakan metode enkripsi dengan paper and pencil, masih disebut kriptografi klasik. Berbeda dengan kriptografi modern yang sekarang, dimana enkripsi menggunakan sumber daya komputasi yang semakin berkembang.
    Sejarah kriptografi zaman dulu pun pernah menyebutkan tentang scytale, merupakan penyandian dengan menggunakan daun papyrus yang dililitkan pada batang pohon yang mempunyai diameter tertentu. Pesan(plaintext) ditulis secara horisontal pada daun papyrus, selanjutnya setelah daun dilepas, maka yang akan terlihat pada daun papyrus yang panjang itu hanyalah rangkaian huruf yang tak berarti/ tidak membentuk kata(ciphertext). Scytale ini dulu digunakan oleh tentara Sparta di Yunani.
    Ada juga Caesar cipher yang digunakan oleh raja Yunani Kuno, Julius Caesar. Metode enkripsi ini dilakukan dengan menggeserkan suatu karakter. Misalkan dengan kunci A = C, kita akan menyandikan KRIPTOGRAFI, maka cipherteksnya NULSWRJUDIL. Caesar cipher ini merupakan metode paling sederhana dalam enkripsi pesan dengan 26 kemungkinan kunci.
    Kemudian Tatto, yang digunakan oleh Herodotus untuk mengirimkan pesan rahasia. Yakni dengan membotaki kepala budak/kurirnya, lalu kepala budak tersebut ditulisi pesan. Rambut budak dibiarkan tumbuh, dan setelah itu budak tersebut dikirim ke tujuan. Untukmembaca pesan, kepala budak dicukur kembali. Namun cara seperti itu memakan waktu yang cukup lama dan kurang efektif.
    Di India pun sandi digunakan oleh para pecinta (lover) untuk berkomunikasi rahasia, seperti disebutkan dalam buku Kama Sutra.
    Pada awal perkembangan agama Kristen, pernah dikenal angka 666 yang menyatakan cara kriptografis untuk menjaga tulisan religi dari gangguan otoritas politik ataupun budaya. Dalam kitab Perjanian Baru, angka ini lebih dikenal sebagai Angka si Buruk Rupa (Number of the Beast).
    Kemudian sejarah ke depan, dimana ditemukan mesin-mesin sandi. Ditemukannya telegram Zimmermann yang membawa Amerika pada Perang Dunia I. Dahulu pada zaman Perang Dunia II, Jerman dan dan Jepang menggunakan kriptografi dalam keperluan militernya, yakni Jerman dengan Enigma-nya dan Jepang dengan Purple. Namun akhirnya, pemecahan algoritma mesin sandi Jerman, Enigma, akhirnya menyebabkan berakhirnya Perang Dunia II.
    Sebenarnya masih banyak lagi sistem sandi klasik dan sejarah sejarah perkembangan kriptografi yang lainnya. Makanya untuk lebih lengkapnya kita bisa membaca The Codebreakers.

    Pengantar Kriptografi

    Posted by Ae89 on


    Kriptologi merupakan ilmu yang mempelajari pengamanan pesan dalam perihal berkomunikasi dengan keberadaan pihak lawan, mengupayakan supaya pesan rahasia tersebut tidak jatuh ke pihak yang tidak berkepentingan, juga termasuk bagaimana cara membuka pesan rahasia baik dengan menggunakan kunci maupun tidak menggunakan kunci. Kriptologi ini di bagi menjadi 2 bagian yaitu kriptografi dan kriptanalisis. Orang yang melakukan kegiatan di bidang kriptografi disebut kriptografer. Sedangkan orang yang yang melakukan kriptanalisis disebut kriptanalis. Beda antara keduanya yaitu, jika kriptografi itu bertujuan untuk mengenkripsi dan dekripsi pesan dengan suatu kunci, sedangkan kriptanalisis bertujuan untuk mencari-cari kemungkinan plainteks yang terenkripsi tanpa menggunakan kunci.
    Kriptografi banyak digunakan baik oleh kalangan diplomat, orang militer, pebisnis, dan mungkin cakupan yang lebih luas lagi karena sekarang sudah banyak berkembang komunikasi dan bahkan transaksi elektronik. Dalam hal ini kriptografi berguna untuk menghindari terjadinya hal-hal seperti interruption, interception(penyadapan), fabrication, modification, dll. Ini beberapa manfaat dari kriptografi, misalnya pengamanan dalam transaksi di mesin ATM, transaksi dengan kartu kredit, percakapan telepon, bahkan pengaktifan peluru kendali. Enkripsi pada kartu kredit lebih sering menggunakan DES(Data Encryption Standard) maupun RSA. Dalam hal ini DES merupakan jenis algoritma kriptografi dalam stream cipher yang menggunakan kunci sepanjang 56 bit, input dan output sebanyak 128 bit. Di sini RSA merupakan salah satu bentuk algoritma public key yang paling dikenal, menggunakan suatu perhitungan matematis dengan mencari gcd(Great Common Divisors). Untuk lebih lengkapnya akan di bahas di artikel lainnya.
    Kriptografi berdasarkan jenis kunci yang digunakan dibagi menjadi 2, yaitu :
    1). Kriptografi kunci simetrik.
    Dalam system ini, kunci untuk enkripsi dan dekripsi sama. Disebut juga private key cryptography.
    Dibagi menjadi 2 :
    a). Stream Cipher, merupakan metode enkripsi yang dilakukan per bit / per karakter. Contoh algoritma stream : RC4, SEAL, OTP, A5, ORYX
    b). Block Cipher, dimana cara enkripsi dilakukan per blok. Contoh algoritma block cipher : 3-Way, Blowfish, CAST, CMEA, DES, Triple-DES, DEAL, FEAL, GOST, IDEA, LOKI, Lucifer, MacGuffin, MARS, MISTY, MMB, NewDES, RC2, RC5, RC6, REDOC, Rijndael (AES), Safer, Serpent, SQUARE, Skipjack, Tiny Encryption Algorithm, Twofish
    2). Kriptografi kunci public.
    Sering juga disebut asimetric key cryptography. Kunci yang digunakan untuk enkripsi dan dekripsi berbeda. Untuk enkripsi disebut public key dan yang untuk dekripsi disebut private key. Contohnya yaitu RSA, DH, DSA, El Gamal, ECC dan LUC

    Steganografi sebagai “kembaran” kriptografi….

    Posted by Ae89 on

    Steganografi (steganography) berasal dari bahasa Yunani steganos, yang artinya “tersembunyi atau terselubung”, dan graphein, “menulis” sehingga dapat diartikan artinya “menulis (tulisan) terselubung”. Steganografi merupakan suatu metode untuk merahasiakan pesan rahasia di dalam file-file lain yang mengandung teks, image, bahkan suara tanpa menunjukkan ciri-ciri perubahan yang nyata atau terlihat dalam kualitas dan struktur dari file semula. Teknik ini meliputi banyak sekali metode komunikasi untuk menyembunyikan pesan rahasia. Metode ini termasuk secret ink, microdots, coding, digital signature, jalur tersembunyi dan komunikasi spektrum lebar. Tujuan dari steganografi adalah merahasiakan atau menyembunyikan keberadaan dari sebuah pesan atau sebuah informasi. Namun seiring dengan berkembangnya teknologi digital akhirnya banyak juga steganografi yang menggunakan modifikasi digital. Seperti dengan menggunakan GUI Matlab kita bisa membuat sebuah program yang bisa digunakan untuk fungsi steganografi, untuk menyembunyikan sebuah pesan rahasia, kunci dekripsi, password, ID, dll. Kebanyakan algoritma steganografi menggunakan sebuah kombinasi dari bidang teknik untuk menyembunyikan pesan rahasia dalam sebuah selubung file. Dalam prakteknya, steganografi digital kebanyakan diselesaikan dengan membuat perubahan tipis terhadap data digital lain sehingga isinya tidak akan menarik perhatian dari penyerang potensial. Covertext atau cover object merupakan istilah yang digunakan untuk media yang akan digunakan untuk menyamarkan pesan, plainteks sebagai pesan yang akan disembunyikan dalam media, dan stego object sebagai bentuk hasil akhir dari penyisipan pesan ke dalam cover object. Proses penyisipan merupakan proses untuk menyembunyikan pesan, sedangkan untuk mengetahui atau mengambil plainteksnya disebut ekstraksi. Format yang biasa digunakan sebagai cover object steganografi biasanya berupa :
    • Format image : bitmap (bmp), gif, pcx, jpeg, dll.
    • Format audio : wav, voc, mp3, dll.
    • Format lain : teks file, html, pdf, dll.
    Contohnya dengan file gambar, kunci dapat disembunyikan dengan menyisipkannya pada bit rendah (LSB) dalam data pixel yang menyusun file gambar. Metode Least Significsnt Bit merupakan metode steganografi yang mudah dipahami.
    Teknik steganografi dibandingkan dengan kriptografi memiliki keunggulan yaitu dengan steganografi keberadaan dari informasi yang disembunyikan tidak dapat dideteksi dengan mudah, dengan steganografi informasi disembunyikan sedemikian rupa sehingga menghilangkan kecurigaan. Sedangkan untuk kriptografi keberadaan dari informasi yang disembunyikan dengan jelas diketahui.

    Message Authentication Codes (MACs)

    Posted by Ae89 on

    Message Authentication Codes (MACs) menyediakan autentikasi dan data integrity. MAC merupakan checksum kriptografi pada data yang digunakan untuk menjamin bahwa data belum pernah diubah dan bahwa MAC dihitung oleh entitas yang diharapkan. Meskipun integrity pesan bisa dilakukan dengan teknik non kriptografi yang sering dikenal sebagai error detection code, namun kode ini dapat dirubah oleh lawan untuk mempengaruhi suatu aksi yang menguntungkan lawan tersebut. Penggunaan dari mekanisme kriptografi yang telah disetujui, seperti MAC, dapat mengurangi masalah ini. MAC dapat menyediakan jaminan bagi penerima pesan bahwa pengirim data adalah key holder. MACs sering digunakan untuk mengeutentikasi pengirim pesan ke penerimanya jika hanya dua belah pihak saja yang berbagi kunci MAC.
    Perhitungan pada MAC membutuhkan penggunaan (1) secret key yang hanya diketahui oleh pihak yang membangkitkan MAC dan oleh penerima MAC yang sebenarnya, dan (2) data yang dihitung menggunakan MAC. Dua tipe algoritma yang digunakan untuk menghitung MAC yang disetujui :
    - Algoritma MAC berbasiskan algoritma block cipher.
    - Algoritma MAC berbasiskan hash function.

    MACs Menggunakan Algoritma Block Cipher
    [SP800-38] mendefinisikan model untuk menghitung MAC menggunakan approved block cipher algorithm seperti AES dan TDEA. Ukuran kunci dan blok yang digunakan untuk menghitung MAC bergantung pada algoritma yang digunakan. Jika dua buah block cipher yang sama digunakan untuk enkripsi dan perhitungan MAC dalam dua operasi kriptografi yang terpisah, kunci yang sama tidak akan digunakan untuk operasi MAC dan enkripsi.
    MACs Menggunakan Hash Function
    [FIPS198] menspesifikasikan perhitungan MAC menggunakan approved hash function. Algoritmanya membutuhkan single pass dari seluruh datanya.. Variasi pada ukuran kuncidiperbolehkan untuk HMAC; pemilihan ukuran kunci bergantung pada ukuran keamanan yang disediakan untuk data dan penggunaan hash function.
    Algoritma Digital Signature
    Digital signature digunakan untuk autentikasi, integrity dan non-repudiation. Digital signature digunakan dalam konjungsi dengan algoritma hash dan diperhitungkan untuk data dengan panjang berapapun (melebihi batas yang ditentukan oleh algoritma hash). [FIPS186-3] menspesifikasikan algoritma yang disetujui untuk perhitungan digital signature. Yakni Digital Signature Algorithm(DSA) dan algoritma RSA yang dispesifikasikan pada [ANSX9.31] dan [PKCS#1] (versi 1.5 dan yang lebih tinggi lagi), dan algoritma ECDSA seperti dalam [ANSX9.62].
    DSA
    Digital Signature Algorithm (DSA) dispesifikasikan pada [FIPS186-3] untuk kunci spesifik dengan ukuran 1024, 2048, dan 3072 bit. DSA akan memproduksi atau menghasilkan tanda tangan digital dengan ukuran dari 320, 448, atau 512 bit. Sistem lama (legacy system) menggunakan ukuran kunci yang lebih kecil. Walaupun dimungkinkan untuk melanjutkan ke proses verifikasi dan melakukan proses tanda tangan digital dengan ukuran kunci yang lebih kecil tersebut, tanda tangan digital yang baru sebaiknya tidak dibuat dengan kunci dengan ukuran seperti ini.
    RSA
    Algoritma RSA, sebagaimana dispesifikasikan dalam [ANSX9.31] dan [PKCS # 1] (versi 1.5 dan lebih tinggi) adalah diadopsi untuk proses penghitungan pada tanda tangan digital dalam [FIPS186-3]. [FIPS186-3] menentukan metode untuk menghasilkan atau membangkitkan pasangan kunci RSA untuk beberapa ukuran kunci untuk [ANSX9.31] dan implementasi [PKCS # 1]. Sistem lama (legacy system) menggunakan kunci dengan ukuran yang lebih kecil. Walaupun dimungkinkan untuk melanjutkan ke proses verifikasi dan melakukan proses tanda tangan digital dengan ukuran kunci yang lebih kecil tersebut, tanda tangan digital yang baru sebaiknya tidak dibuat dengan kunci degan ukuran seperti ini.
    ECDSA
    Elliptic Curve Digital Signature Algorithm (ECDSA), sebagaimana dispesifikasikan dalam [ANSX9.62], adalah diadopsi untuk proses penghitungan pada tanda tangan digital dalam [FIPS186-3]. [ANSX9.62] menetapkan ukuran kunci minimum dari 160 bit. ECDSA menghasilkan tanda tangan digital yang memiliki ukuran dua kali lebih panjang. Elliptic curve yang direkomendasikan terdapat pada [FIPS186-3].
    Sumber : NIST Special Publication 800-57

    About Key Establishment

    Posted by Ae89 on

    Skema key establishment digunakan untuk membangkitkan kunci yang akan digunakan untuk komunikasi antar entitas. Terdapat dua jenis key establishment yaitu: key transport dan key agreement. Persetujuan skema key establishment tercantum di [SP800-56].
    Key transport merupakan distribusi kunci (dan material kunci yang lain) dari satu entitas ke entitas lainnya. Material kunci biasanya dienkripsi oleh entitas pengirim dan didekripsi oleh entitas penerima. Jika algoritma simetrik (misalnya, AES key wrap) digunakan untuk mengenkripsi material kunci yang akan didistribusikan, entitas pengirim dan penerima perlu mengetahui kunci simetrik wrapping key. Jika algoritma kunci publik digunakan untuk mendistribusikan material kunci, pasangan kunci digunakan sebagai key encrypting key, dalam kasus ini, entitas pengirim meng- enkripsi material kunci menggunakan kunci publik entitas penerima; entitas penerima men-dekripsi material kunci yang diterima dengan menggunakan kunci privat yang berasosiasi.
    Key agreement merupakan partisipasi dari kedua entitas (entitas pengirim dan penerima) dalam penggunaan bersama material kunci. Hal ini akan sempurna apabila menggunakan teknik asimetrik (public key) atau kunci simetrik. Jika algoritma asimetrik digunakan, masing-masing entitas memiliki baik pasangan kunci statis atau pasangan kunci sementara atau keduanya. Jika algoritma simetrik digunakan, masing-masing entitas berbagi kunci simetrik wrapping key yang sama.
    [SP800-56] menyetujui skema key establishment  yang dipilih yang didefinisikan dalam standar ANSI yang menggunakan algoritma kunci publik: [ANSX9.42], dan [ANSX9.63]. [ANSX9.42] menspesifikasikan  skema key agreement dan [ANSX9.63] menspesifikasikan skema key agreement dan key transport.
    Dengan skema key establishment yang dispesifikasikan dalam [SP800-56], salah satu pihak tidak memiliki kunci, kunci sementara, kunci statis, atau keduanya. Kunci sementara digunakan untuk  memperkenalkan rahasia baru dari satu key establishment ke key establishment yang lain, sedangkan kunci statis (jika digunakan dalam PKI dengan sertifikat kunci publik) menyediakan otentikasi pemilik. [SP800-56] mengkarakteristikkan setiap skema ke dalam kelas tergantung seberapa sering  kunci sementara dan kunci statis yang digunakan. Setiap kelas skema memiliki hubungan dengan property keamanannya. Perancang  protocol kriptografi harus memahami properti keamanan dari suatu skema untuk memastikan bahwa kemampuan yang diharapkan tersedia bagi pengguna. Secara umum, skema di mana masing-masing pihak, baik yang menggunakan kunci sementara dan kunci static menyediakan keamanan lebih daripada skema yang menggunakan kunci yang lebih sedikit. Namun, hal ini mungkin tidak praktis untuk kedua belah pihak untuk menggunakan kedua kunci static dan kunci sementara dalam aplikasi tertentu. Misalnya, dalam aplikasi email, terdapat keinginan untuk mengirim pesan kepada pihak lain yang tidak on-line. Dalam hal ini kami tidak dapat mengharapkan penerima menggunakan kunci sementara untuk menentukan pesan yang meng-enkripsi kunci.
    Discrete Log Key Agreement Schemes Using Finite Field Arithmetic
    Skema key agreement berdasarkan ketangguhan dari masalah logaritma diskrit dan menggunakan aritmatika finite field telah ditentukan dalam [SP800-56] dari [ANSX9.42]. [SP800-56] telah menentukan tujuh dari delapan skema yang didefinisikan dalam [ANSX9.42]. Setiap skema menyediakan berbagai konfigurasi pasangan kunci yang dapat digunakan, tergantung pada ketentuan situasi komunikasi.
    Discrete Log Key Agreement Schemes Using Elliptic Curve Arithmetic
    Skema key agreement berdasarkan ketangguhan dari masalah logaritma diskrit dan menggunakan  aritmatika elliptic curve telah ditentukan dalam [SP800-56] dari [ANSX9.63]. Tujuh dari sebelas skema key agreement telah ditentukan. Setiap skema menyediakan berbagai konfigurasi pasangan kunci yang dapat digunakan, tergantung pada ketentuan situasi komunikasi.
    RSA Key Transport
    Skema RSA key agreement dan key transport akan diambil dari [ANS X9.44]
    Key Wrapping
    Key wrapping adalah enkripsi kunci melalui sebuah kunci yang merahasiakan kunci menggunakan algoritma simetris (contohnya kunci AES disandikan oleh kunci AES yang merahasiakan kunci). Key wrapping memberikan kerahasiaan dan integritas pada material yang tersembunyi.
    Key Confirmation
    Key confirmation digunakan oleh dua pihak dalam sebuah proses pembuatan kunci untuk memberikan jaminan bahwa materi pengunci yang umum dan/atau rahasia bersama telah dibuat. Jaminan tersebut mungkin diberikan hanya kepada satu pihak (unilateral) atau mungkin diberikan kepada kedua belah pihak (bilateral). Jaminan tersebut mungkin diberikan sebagai bagian dari skema pembuatan kunci atau mungkin diberikan karena beberapa tindakan/kekuatan yang terjadi diluar skema. Sebagai contoh, setelah kunci dibuat, masing-masing pihak memberikan konfirmasi kepada pihak lainnya yang memiliki rahasia yang sama dengan memeragakan kemampuan mereka dalam membuat sandi dan membuka data rahasia. [SP800-56] memberikan konfirmasi kunci unilateral untuk skema dimana salah satu pihak memiliki kunci statis pembuatan kunci, dan konfirmasi kunci bilateral untuk skema dimana kedua belah pihak memiliki kunci statis pembuatan kunci.
    Key Establishment Protocols
    Key establishment  protocols menggunakan skema pembuatan kunci dalam rangka menetapkan pemrosesan yang dibutuhkan untuk membuat kunci. Bagaimanapun, key establishment protocols harus didesain dengan hati-hati tidak untuk memberikan informasi rahasia kepada musuh. Contohnya, kondisi protokol yang dinyatakan abnormal, seperti integritas data salah, memungkinkan musuh mengonfirmasi atau menolak asumsi mengenai data rahasia. Sebagai alternatif, jika waktu atau daya dibutuhkan, perhitungan tertentu didasarkan pada nilai dari rahasia atau privasi kunci yang digunakan, kemudian musuh mungkin saja dapat menarik kesimpulan kunci melalui fluktuasi yang diamati.
    Oleh karena itu, hal ini baik untuk mendesain protokol pembuatan kunci, sehingga:
    1. Protokol tidak memberikan jalan keluar yang cepat dari protokol diatas deteksi kesalahan tunggal.
    2. Protokol memicu alarm setelah mendeteksi kondisi yang salah, dan
    3. Perhitungan kunci terikat disembunyikan oleh pengamat untuk mencegah atau mengecilkan deteksi karakteristik kunci terikat.
    Source : NIST Special Publication 800-57

    Timestamping

    Posted by Ae89 on

    Pengklasifikasian  pada skema digital time stamping dikelompokkan kedalam 3 tipe dasar yaitu: skema sederhana (simple scheme), skema terangkai (linking scheme), dan skema terdistribusi (distributed scheme). Kemudian time stamping berdasarkan tekniknya dengan membagi kedalam 2 konsep yaitu konsep skema dengan menunggakan pihak ketiga terpercaya (trusted third party/TTP) dan berdasarkan konsep terdistribusi (distributed trust).
    Timestamp dengan Arbitrated Solution
    Time-Stamping authority (Trent) bertindak sebagai pihak yang dipercaya oleh pihak yang ingin memberikan time stamp pada sebuah dokumen. Pihak ini berperan dalam membuktikan keberadaan sebuah dokumen tanpa ada kemungkinan pihak pemilik dokumen dapat mengubah waktu penunjuk pada time stamp sehingga penerima dokumen dapat yakin dengan time stamp yang ada dalam dokumen tersebut.
    Pemberian time stamp dengan menggunakan jasa Trent biasanya dinamakan dengan Trusted Digital Timestamping karena biasanya pihak Trent telah dipercaya oleh orang yang ingin memberikan time stamp pada dokumennya.
    (1). Alice mengirimkan copy dokumen P (atau sebuah nilai hash dari dokumen) yang akan diberi time stamp kepada Trent
    (2.) Trent mencatat tanggal dan waktu penerimaan kemudian Trent membubuhkan waktu t dan IDclient dan digabungkan dengan dokumen seperti sebagai berikut (IDclient, t, P).
    (3). TSA mengembalikan dua nilai yaitu t dan      signature s = sigTSA(ID, t, P) ke client.
    Setelah itu jika seseorang meminta pada Alice untuk mengklaim waktu pembuatan dokumen, maka ia akan menghubungi Trent. Trent akan membuat copy dokumen dan memverifikasi dokumen yang ia terima dengan waktu dan timestampnya.
    Keterbatasan :
    1. Tidak ada privasi. Alice memberikan dokumennya kepada Trent. Jika ada seseorang yang mendengarkan pada saluran komunikasi maka ia bisa mengetahuinya. Oleh karena itu Alice harus mengenkripsinya meskipun dokumen tersebut nantinya tetap diletakkan di database Trent.
    2. Ukuran database terlalu besar sehingga kebutuhan bandwidth untuk mengirim dokumen ke Trent menjadi berat.
    3. Adanya potential error. Sebuah kesalahan transmisi atau terjadi electromagnetic bomb detonating pada sentral computer Trent dapat membuat klaim Alice tentang timestamp tidak berlaku.
    4. Kemungkinan adanya pihak yang tidak sejujur Trent untuk menjalankan timestamping service.
    Timestamp dengan Improved Arbitrated Solution.
    One way hash function dan digital signature dapat mengatasi masalah-masalah sebelumnya yakni dengan :
    (1). Alice membuat hasil hash dari dokumennya.
    (2). Alice mentransmisikan hasil hash pada Trent
    (3). Trent menambahkan tanggal dan waktu ia menerima hash di atasnya dan kemudian menandatanganinya.
    (4). Trent mengirim hash dengan timestamp yang telah ditandatangani ke Alice.
    Keterbatasan :
    Trent tidak lama menyimpan copy dari dokumen (atau hash), maka masalah keamanan dan kebutuhan storage yang besar bisa terjadi (perlu diingat bahwa fungsi hash tidak menggunakan kunci). Alice dapat dengan segera memeriksa signed timestamped hash yang ia terima pada step ke 4 sehingga ia bisa dengan segera mengetahui adanya error dalam transmisi.
    Timestamp dengan Skema Terangkai (Linking Scheme)
    Untuk menjamin bahwa Trent akan memberikan time stamp dengan tanggal dan waktu yang berbeda untuk setiap dokumen, Time-Stamping Service dapat menghubungkan semua nilai hash dari dokumen yang telah diajukan dalam sebuah rantai menggunakan sebuah hash function H. Dalam kasus ini, time stamp s untuk dokumen ke-n Hn akan menjadi:
    Tn = SK(n,A,Hn,tn,In – 1,Hn – 1,Tn – 1,Ln)
    dimana SK adalah digital signature dari Time-Stamping Service, tn adalah tanggal dari dokumen, dan Ln adalah link information:
    Ln = H(In – 1,Hn – 1,Tn – 1,Ln – 1)
    dimana tn-1 adalah tanggal dari dokumen sebelumnya Hn-1 adalah nilai hash dari dokumen sebelumnya,
    (1)   Alice mengirim Trent Hn dan A
    (2)   Trent mengirim balik ke Alice Tn
    (3)   Setelah Trent men-stamp dokumen selanjutnya, ia mengirimi Alice identifier dokumen In + 1
    Dengan cara ini, Time-Stamping Service menghubungkan time stamp sekarang dengan yang sebelumnya untuk mendapatkan sebuah rangkaian time stamp dengan urutan yang masih dalam batas. Untuk memecahkan masalah perselisihan yang mungkin timbul, Time-Stamping Service dapat mengenali jika sebuah dokumen yang telah diberi time stamp sebelum yang lainnya.
    Akan tetapi, terdapat beberapa masalah dengan implementasi dari cara ini. Salah satunya mungkin menghabiskan waktu dalam memeriksa hubungan antara dua time stamp, ini secara langsung sebanding dengan jumlah dari time stamp yang terhubung dalam rantai. Masalah lain yang mungkin adalah pertanyaan mengenai ketahanan dari Time-Stamping Service, misalkan ada dua dokumen yang datang pada waktu t1 dan t2, Time-Stamping Service tidak boleh membuat time stamp untuk dokumen yang datang pada t2 sebelum membuat time stamp untuk dokumen yang datang pada t1.
    Time Stamp dengan Distributed Trust
    Diasumsikan bahwa terdapat sebuah skema tanda tangan yang aman sehingga setiap user dapat menandatangani pesan, dan tersedia sebuah standar pseudorandom generator G yang aman untuk semua user. Sebuah pseudorandom generator adalah sebuah algoritma yang menerima masukkan berupa nilai awalan (seed) yang pendek dan menghasilkan rangkaian nilai keluaran yang tidak dapat dibedakan oleh algoritma dari rangkaian yang acak, dengan kata lain, rangkaian keluaran tidak dapat diperkirakan.
    (1). Dengan menggunakan Hn sebagai input, Alice menggenerate nilai random dari string menggunakan PRNG secara kriptografis:
    V1, V2,…..Vk
    (2) Alice menafsirkan setiap nilai identifier, I, pada orang lain. Alice mengirim nilai identifier Hn pada setiap orang tersebut.
    (3). Setiap orang tersebut melampirkan tanggal dan waktu pada hash, menandatanganinya dan mengirim balik ke Alice.
    (4) Alice menerima dan menyimpan semua signature dan timestamp.
    Penggunaan Time Stamp
    Time stamp telah banyak digunakan dalam dokumentasi suatu data yang memerlukan keabsahan dari waktu untuk menunjukkan bahwa data tersebut adalah sah. Keabsahan ini menjamin bahwa isi dari data tidak pernah diubah sejak diberi time stamp dan waktu yang terdapat pada time stamp menunjukkan waktu sesungguhnya.
    Banyak data yang menggunakan time stamp dalam menjaga keamaannya. Salah satunya adalah dokumen mengenai suatu penelitan yang memerlukan pengakuan atas waktu dari penelitiannya. Hal ini untuk menjaga agar tidak ada peneliti lain yang mengaku melakukan penelitian yang sama dan waktunya lebih dulu dari dokumen penelitian yang sebenarnya. Salah satu aplikasi yang dapat digunakan dalam pemberian time stamp adalah Adobe Acrobat versi 7 dimana time stamp server harus dikonfigurasi terlebih dahulu sebelum menggunakannya.
    Pada bidang lain, misalnya lembaga keuangan, laporan keuangan yang dikeluarkan setiap tahunnya harus dijamin bahwa waktu yang tertera pada laporan tersebut adalah yang sebenarnya. Selain itu, dapat diterapkan pula pada transaksi keuangan yang terdapat dalam lembaga keuangan dengan tujuan waktu dari transaksi menyatakan waktu sesungguhnya dan menjamin tidak terjadi manipulasi.
    Penggunaan time stamp yang lain adalah IP telephony. Sebagai contoh, Real-time Transport Protocol (RTP) memberikan rangkaian (sequential) time stamp pada paket-paket suara sehingga mereka dapat ditampung dalam sebuah buffer oleh penerima, dirakit ulang, dan terkirim tanpa adanya kesalahan karena waktu dari setiap paket suara yang dikirimkan tidak mungkin berubah selama pengiriman.
    Dalam melakukan transaksi keuangan yang berbasis e-commerce, time stamp dapat pula digunakan dengan tujuan untuk menghindari adanya pesanan palsu atau tidak sah. Tujuan lain adalah untuk menghindari terjadinya perselisihan antara customer dengan perusahaan e-commerce itu sendiri.
    Masih terdapat penggunaan time stamp lainnya, yang sangat berguna untuk menghindari kesalahpahaman antara dua atau beberapa pihak mengenai keabsahan suatu dokumen. Suatu dokumen digital diberi time stamp agar suatu dokumen diakui keabsahannya baik waktu maupun isi dari dokumennya.
    Masalah yang muncul dalam Time Stamp
    Semua tahapan implementasi dari Digital Time-Stamping perlu mendapat perhatian, dari pembuatan nilai hash dari dokumen sampai pada penerimaan time stamp oleh customer. Diantara tahapan-tahapan ini, terdapat banyak kemungkinan yang dapat mengakibatkan persoalan atau kesalahan. Beberapa kemungkinan tersebut dijelaskan sebagai berikut:
    1. Spoofing: merupakan sebuah serangan yang terjadi ketika sebuah host memalsukan diri menjadi yang lain dengan tujuan untuk menangkap pesan yang diperuntukan untuk mesin yang asli. Pada Digital Time-Stamping, serangan ini dapat terjadi dimana sebuah mesin berpura-pura menjadi entitas Time-Stamping dan menghasilkan time stamp yang salah. Permasalahan ini dapat diselesaikan dengan memperkenalkan sebuah sistem yang dapat mendeteksi serangan tersebut, biasanya dinamakan Intruders Detection System (IDS).
    2. Denial of Service: adalah sebuah kemampuan satu atau beberapa host untuk mengirimkan beberapa nilai hash ke sistem yang terbuka dari korban, dalam kasus ini, entitas Time-Stamping. Dengan cara ini, penyerang (attacker) memenuhi koneksi dari Time-Stamping Service untuk memaksanya menolak permintaan time stamp yang baru. Penyelesaian akan masalah ini sama dengan Spoofing.
    3. Cheat the stamp’s chain: seseorang yang mempunyai akses terhadap entitas Time-Stamping dan mengetahui bagaimana linking dari time stamp, dapat membuat sebuah cabang rantai yang salah dari rantai tersebut untuk mendapatkan hasil yang salah. Hal ini dapat diselesaikan dengan menjalankan pencarian secara periodik di dalam rantai atau tree untuk memeriksa jika terdapat cabang yang salah.
    4. Compromised function F: ketika hal ini terjadi, entitas Time-Stamping sebaiknya melakukan prosedur perbaikan, jika tidak dilakukan maka tidak terdapat kepercayaan time stamp yang dibuat oleh entitas tersebut. Tapi entitas Time-Stamping tidak membutuhkan semua dokumen untuk melakukan proses linking lagi. Salah satu solusinya adalah memakai dua tipe function F, sebagai contoh, nilai hash dihasilkan dengan MD5 dan juga dengan SHA-1, sehingga membuatnya semakin susah bagi penyerang untuk memalsukan sebuah time stamp. Solusi yang lain adalah secara periodik menandatangani kembali semua node-node dari rantai dengan metode tanda tangan yang lebih baru.
    Source : Applied Cryptography, Bruce Schneier