Mengembangkan Sistem Kueri Yang Efisien Untuk Dokumen XML – XQuery adalah query dan bahasa pemrograman fungsional yang dirancang untuk query data dalam dokumen XML. Makalah ini membahas cara efisien mengkueri dokumen XML terenkripsi menggunakan XQuery, dengan poin kuncinya bagaimana menghilangkan dekripsi yang berlebihan sehingga mempercepat proses kueri.
Mengembangkan Sistem Kueri Yang Efisien Untuk Dokumen XML
zorba-xquery – Kami mengusulkan model yang dapat diterjemahkan secara otomatis pernyataan XQuery untuk dokumen XML terenkripsi. Implementasi dan hasil eksperimen menunjukkan kepraktisan model yang diusulkan.
Menyorot
Kami mengusulkan skema untuk kueri dokumen XML terenkripsi yang efisien. Skema kami menghilangkan dekripsi yang berlebihan untuk mempercepat proses kueri. Algoritma yang digunakan untuk mengubah program XQuery menunjukkan kinerja yang baik.
Pengantar
Bahasa XQuery (Boag et al., 2007) adalah teknologi dari W3C yang dirancang untuk dapat diterapkan secara luas di semua jenis sumber data XML. Ini menyediakan fungsionalitas kueri yang fleksibel untuk mengekstrak data dari dokumen nyata dan virtual dengan cepat atau dalam database. XQuery menggunakan model data XML yang dapat mewakili dokumen XML, urutan, atau elemen atom seperti bilangan bulat atau string. Spesifikasi XQuery menentukan model yang menentukan yang menentukan bahwa prosesor XQuery berinteraksi dengan dan langkah apa yang harus diambil untuk menemukan kueri. Program XQuery mencakup navigasi dalam dokumen XML menggunakan XPath (Clark dan DeRose, 1999), pernyataan database (yang disebut ekspresi FLWOR), konstruksi elemen XML baru, operasi pada tipe Skema XML, dan pemanggilan fungsi.
W3C Lebih dari 50 implementasi XQuery . Misalnya, Galax adalah implementasi XQuery 1.0 yang ringan dan dapat diperluas yang melacak dengan cermat definisi XQuery 1.0 seperti yang ditentukan oleh W3C, yang berarti ia juga mengimplementasikan XPath 2.0 (bagian dari XQuery 1.0). Qexo adalah implementasi parsial dari bahasa XQuery yang menunjukkan kinerja yang baik karena kueri dikompilasi ke kode byte Java menggunakan kerangka Kawa. Sedna, yang didasarkan pada toko XML asli, mengimplementasikan arsitektur yang berlapis standar menggunakan dinamis antara eksekusi berbasis tarik dan dorong saat run-time. Zorba adalah prosesor XQuery sumber terbuka yang dirancang untuk dapat disebarluaskan di berbagai lingkungan, seperti bahasa pemrograman lain yang diperluas dengan kemampuan menawarkan XML, browser, server basis data, pengirim pesan XML,
XML berguna karena mengurangi biaya dengan meningkatkan fleksibilitas manajemen data dalam berbagai cara. XML adalah platform-independen dan berdasarkan Unicode, yang berarti mendukung semua bahasa dan abjad. Format XML menjadi pengkodean data yang tersebar luas untuk aplikasi dan layanan Web, yang membuatnya semakin penting untuk menjaga keakuratan informasi yang direpresentasikan dalam dokumen XML. Misalnya, kita mungkin perlu dan mengenkripsi dokumen XML untuk memastikan tidak ada keharusan dan kerahasiaan (Schneier, 1995). enkripsi elemen-bijaksana XML (Maruyama dan Imamura, 2000), kelompok kerja enkripsi XML dari W3C (Enkripsi XML, 2001) berdasarkan spesifikasi rekomendasi untuk enkripsi XML (Imamura et al., 2002). Dokumen terenkripsi menentukan proses untuk mengenkripsi data dan mewakili hasilnya dalam XML. Data terenkripsi dapat berupa data arbitrer, elemen XML, atau konten elemen XML. Gambar 2 mengilustrasikan konsep enkripsi elemen-bijaksana. Gambar 2(A) menunjukkan informasi pembayaran Tony Chen. Nomor kredit Chen sensitif dan harus dijaga kerahasiaannya. Seluruhnya “Elemen CreditCard” dienkripsi dan ditunjukkan pada Gambar. 2(B). Gambar 2(C) menyatakan bahwa “Kartu Kredit” dan “Nomor” dalam keadaan kosong, tetapi isi data karakter “Nomor” dienkripsi. Ini memungkinkan file XML dilindungi karena data sensitif dalam XML dienkripsi dengan kunci tertentu. Elemen CreditCard” dienkripsi dan ditunjukkan pada Gambar. 2 (B). Gambar 2(C) menyatakan bahwa “Kartu Kredit” dan “Nomor” dalam keadaan kosong, tetapi berisi data karakter “Nomor” dienkripsi. Ini mendukung file XML yang dilindungi karena data sensitif dalam XML dienkripsi dengan kunci tertentu. Elemen CreditCard” dienkripsi dan ditunjukkan pada Gambar. 2 (B). Gambar 2(C) menyatakan bahwa “Kartu Kredit” dan “Nomor” dalam keadaan kosong, tetapi berisi data karakter “Nomor” dienkripsi. Ini mendukung file XML yang dilindungi karena data sensitif dalam XML dienkripsi dengan kunci tertentu.
Makalah ini membahas cara meminta data dari dokumen XML terenkripsi ini dengan XQuery. Cara yang mudah dan intuitif adalah pertama-tama mendekripsi seluruh dokumen XML terenkripsi dan kemudian menggunakan program XQuery untuk mendapatkan dokumen yang diinginkan (lihat Gambar 3). Kelemahan dari pendekatan ini adalah tidak efisien dalam situasi tertentu karena semua elemen terenkripsi dalam dokumen XML yang harus didekripsi. Menurut semantik operasionalnya, XQuery biasanya digunakan untuk mendapatkan elemen kecil dari dokumen XML target. Secara teoritis tidak perlu mendekripsi semua elemen terenkripsi dalam dokumen XML target kita hanya perlu mendekripsi elemen-elemen yang termasuk dalam elemen hasil dari kueri yang dikeluarkan.
Baca Juga : 7 Faktor yang Perlu Diperhatikan Dalam Prosesor (CPU)
Tujuan pertama adalah untuk menghilangkan dekripsi yang tidak perlu. Menurut spesifikasi enkripsi W3C XML (Imamura et al., 2002), cakupan dapat berupa “elemen”, yang mengenkripsi seluruh elemen (termasuk tag awal/akhir), atau “konten”, yang mengenkripsi elemen konten (antara tag awal/akhir) . Perhatikan dokumen XML yang ditunjukkan pada Gambar 4. Elemen “pembayar” dan “cardinfo” dienkripsi secara keseluruhan; yaitu, Cakupan enkripsi mereka diatur ke “elemen”. Dalam dokumen XML terenkripsi yang ditunjukkan pada Gambar. 5, elemen ” CipherData ” berisi data terenkripsi dari ” pembayar ” dan ” cardinfo”, dan dibungkus oleh elemen “ EncryptedData ”. Perhatikan bahwa nama tag dari elemen “ pembayar ” dan “ cardinfo ” menghilang. Gambar 5 menunjukkan bahwa setelah cakupan suatu elemen diatur ke “elemen”, nama tagnya tidak dapat diperiksa kecuali kita mendekripsi elemen tersebut terlebih dahulu. Jenis cakupan enkripsi sangat membantu untuk keamanan data karena tidak ada petunjuk tentang elemen mana yang dienkripsi. Gbr. 6 daftar program XQuery yang digunakan untuk mendapatkan nilai dari “cardinfo”element ” dari Gambar 4. Jelas bahwa kita tidak dapat menggunakan program ini untuk menanyakan dokumen terenkripsi yang ditunjukkan pada Gambar 5; kita harus mendekripsi dua elemen terenkripsi sebelum melakukan kueri. Namun, karena kami hanya ingin menanyakan salah satunya, dekripsi lainnya tidak diperlukan. Jenis cakupan enkripsi sangat membantu untuk keamanan data karena tidak ada petunjuk tentang elemen mana yang dienkripsi. Gbr. 6 daftar program XQuery yang digunakan untuk mendapatkan nilai dari “cardinfo”element ” dari Gambar 4. Jelas bahwa kita tidak dapat menggunakan program ini untuk menanyakan dokumen terenkripsi yang ditunjukkan pada Gambar 5; kita harus mendekripsi dua elemen terenkripsi sebelum melakukan kueri. Namun, karena kami hanya ingin menanyakan salah satunya, dekripsi lainnya tidak diperlukan. Jenis cakupan enkripsi sangat membantu untuk keamanan data karena tidak ada petunjuk tentang elemen mana yang dienkripsi. Gbr. 6 daftar program XQuery yang digunakan untuk mendapatkan nilai dari “cardinfo”element ” dari Gambar 4. Jelas bahwa kita tidak dapat menggunakan program ini untuk menanyakan dokumen terenkripsi yang ditunjukkan pada Gambar 5; kita harus mendekripsi dua elemen terenkripsi sebelum melakukan kueri. Namun, karena kami hanya ingin menanyakan salah satunya, dekripsi lainnya tidak diperlukan. kita harus mendekripsi dua elemen terenkripsi sebelum melakukan kueri. Namun, karena kami hanya ingin menanyakan salah satunya, dekripsi lainnya tidak diperlukan. kita harus mendekripsi dua elemen terenkripsi sebelum melakukan kueri. Namun, karena kami hanya ingin menanyakan salah satunya, dekripsi lainnya tidak diperlukan.
Beberapa peneliti telah mengerjakan kueri atas dokumen XML terenkripsi (Schrefl et al., 2005, Yang et al., 2006, Wang dan Lakshmanan, 2006, Lee dan Whang, 2006). Misalnya, Schrefl dkk. (2005) mengusulkan teknik untuk memproses kueri dan dokumen XML terenkripsi yang disimpan di server yang tidak dapat dipercaya. Dengan melakukan enkripsi dan dekripsi hanya pada klien tetapi tidak pada server, ini menjamin bahwa baik struktur dokumen maupun konten dokumen tidak di server. Yang dkk. (2006) mengusulkan XQEnc teknik enkripsi XML menggunakan vektorisasi dan kompresi kerangka. Pendekatan ini menyimpan skema dokumen XML sebagai kerangka terkompresi pada klien dan sangat efisien karena hanya mengambil data yang diperlukan klien untuk mendekripsi. Wang dan Lakshmanan (2006) mengusulkan mekanisme metadata termasuk indeks struktural dan nilai di server sisi yang mendukung evaluasi kueri yang efisien. Lee dan Whang (2006) mengusulkan gagasan Query-Aware Decryption. Pendekatan ini menyebarkan indeks XML terenkripsi bersama dengan data XML terenkripsi. Indeks ini akan informasi di mana hasil kueri berada dalam data XML terenkripsi; sehingga mencegah melakukan dekripsi yang tidak perlu di bagian lain dari data.
Untuk meningkatkan efisiensi dekripsi dokumen XML terenkripsi dalam proses kueri, kita harus menghindari melakukan dekripsi yang tidak perlu. Untuk contoh yang ditunjukkan pada Gambar. 4, Gambar. 5, Gambar. 6, menjelaskan bahwa beberapa informasi tambahan yang diperlukan untuk menghilangkan dekripsi yang berlebihan karena enkripsi dapat merusak struktur dokumen XML. kadang-kadang informasi struktur harus selama kueri. Dalam makalah ini, kami menyajikan jenis informasi yang diperlukan untuk menghilangkan dekripsi yang berlebihan dan mengusulkan model untuk diterjemahkan secara otomatis menerjemahkan program XQuery yang ditulis oleh pengguna ke program lain yang secara akurat menemukan elemen target yang harus didekripsi. Algoritme terjemahan yang disajikan optimal dalam hal perhitungan yang diperlukan untuk dekripsi.
Model Pemrosesan Untuk Menanyakan Dokumen XML Terenkripsi
Mengkueri dokumen XML terenkripsi secara optimal di XQuery memerlukan informasi tentang keamanan. Perhatikan bahwa kueri optimal didefinisikan sebagai kueri yang memerlukan dekripsi minimal untuk elemen terenkripsi dalam dokumen XML target. Secara umum, standar enkripsi dan tanda tangan yang diusulkan oleh W3C menawarkan definisi lengkap format untuk dokumen XML terenkripsi (Imamura et al., 2002, Bartel et al., 2008). Namun, bahasa tersebut tidak cukup kuat bagi programmer untuk menentukan caranya
Algoritma Transformasi XQuery Untuk Menanyakan Dokumen XML Terenkripsi
Sekarang kami menyajikan desain algoritma yang digunakan untuk mengubah program XQuery; yaitu, desain penerjemah yang ditunjukkan pada Gambar 8. Kita mulai dengan mempertimbangkan sintaks dari pernyataan XQuery. Setiap program XQuery berisi satu atau lebih ekspresi kueri. Ekspresi FLWOR adalah ekspresi XQuery yang paling kuat dan, dalam banyak hal, mirip dengan pernyataan SELECT-FROM-WHERE yang digunakan dalam SQL (ISO, 1999). Tata bahasa formal untuk ekspresi FLWOR di XQuery didefinisikan dalam (Boag et
Implementasi Dan Hasil Eksperimen
Kami menggunakan Saxon sebagai prosesor XQuery untuk menjalankan program XQuery. Saxon langsung mengkompilasi program XQuery ke dalam pohon operator dan melakukan transformasi dan optimasi tingkat lanjut pada pohon operator. Menurut model pemrosesan yang ditunjukkan pada Gambar. 8, kami mengimplementasikan penerjemah yang memungkinkan program XQuery yang ditulis oleh pengguna untuk meminta data dari dokumen XML terenkripsi sesuai dengan algoritma yang tercantum pada Gambar 9. Kami juga mengimplementasikan objek ekstensi untuk melakukan proses dekripsi.
Kesimpulan
Makalah ini berfokus pada pengembangan model untuk kueri dokumen XML terenkripsi secara efisien menggunakan XQuery. Model ini memerlukan dokumen tertentu untuk kueri yang efisien, termasuk DSL yang menentukan cara mengenkripsi dokumen XML dan Skema XML dari dokumen XML asli. Model ini mendukung kueri dokumen XML terenkripsi yang efisien, dalam hal perhitungan yang diperlukan untuk dekripsi selama proses kueri. Hasil eksperimen disajikan di sini
Tao-Ku Chang adalah asisten profesor di Departemen Ilmu Komputer dan Informasi di Universitas Nasional Dong Hwa. Ia menerima gelar Ph.D. gelar saat di Graduate Institute of Information and Computer Education di National Taiwan Normal University, Taipei, Taiwan, pada tahun 1998. Minat penelitiannya meliputi SOA, masalah terkait XML, keamanan Internet, dan teknologi berorientasi objek.