|
Metode dan Algoritma | Tutorial Elliptic Curve ECDSA untuk XML Digital Signatures Contoh Program + Source Code . Anda bisa melakukan konsultasi tentang Tutorial Elliptic Curve ECDSA untuk XML Digital Signatures Contoh Program + Source Code melalui form di samping kanan !!!
1. Pengenalan
Dokumen ini menetapkan cara menggunakan Elliptic Curve Digital
Algoritma Tanda Tangan (ECDSA) dengan tanda tangan XML, sebagaimana ditentukan dalam
[XMLDSIG]. [XMLDSIG] mendefinisikan hanya dua metode tanda tangan digital: RSA
dan DSA (DSS) tanda tangan. Dokumen ini memperkenalkan tanda tangan ECDSA
sebagai metode tambahan.
Dokumen ini menggunakan kedua XML Schemas [XML-schema] (normatif) dan DTD
[XML] (informasi) untuk menentukan struktur XML yang sesuai.
2. ECDSA
Elliptic Curve Digital Signature Algorithm (ECDSA) adalah
kurva eliptik analog dari metode (DSS) tanda tangan DSA
[FIPS-186-2]. Hal ini didefinisikan dalam ANSI X9.62 standar [X9.62].
Spesifikasi lain yang kompatibel termasuk FIPS 186-2 [FIPS-186-2], IEEE
1363 [IEEE1363], IEEE 1363a [IEEE1363a], dan SEC1 [SEC1]. [RFC3279]
menjelaskan cara untuk membawa kunci ECDSA dalam sertifikat X.509.
[FIPS-186-2], [SEC2], dan [X9.62] kurva eliptik memberikan direkomendasikan
domain parameter untuk digunakan dengan ECDSA.
Blake-Wilson, dkk. Informational [Page 2]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
Seperti DSA, ECDSA menggabungkan penggunaan fungsi hash. Saat ini,
fungsi hash didefinisikan hanya untuk digunakan dengan ECDSA adalah SHA-1
pesan mencerna algoritma [FIPS-180-1].
Tanda tangan ECDSA lebih kecil dari RSA signature yang serupa
kriptografi kekuatan. ECDSA kunci publik (dan sertifikat) yang
lebih kecil dari kunci kekuatan yang sama DSA dan mengakibatkan peningkatan
komunikasi efisiensi. Pada banyak platform, operasi ECDSA dapat
dihitung lebih cepat daripada RSA kekuatan yang sama atau operasi DSA (lihat
[KUNCI] untuk analisis keamanan ukuran kunci di kunci publik
algoritma). Keuntungan ini ukuran tanda tangan, bandwidth, dan
efisiensi komputasi dapat membuat ECDSA sebuah pilihan menarik bagi
XMLDSIG implementasi.
3. Menentukan ECDSA dalam XMLDSIG
Bagian ini menentukan bagaimana menggunakan ECDSA dengan Sintaks XML Signature dan
Pengolahan [XMLDSIG]. Ini sangat bergantung pada sintaks dan namespace
didefinisikan dalam [XMLDSIG].
3.1. Versi, Namespace, dan Identifier
Spesifikasi ini tidak membuat ketentuan untuk nomor versi yang eksplisit
dalam sintaks. Jika versi masa depan diperlukan, ia akan menggunakan
namespace yang berbeda.
XML namespace [XML-ns] URI yang HARUS digunakan oleh implementasi
ini (tanggal) spesifikasi adalah:
http://www.w3.org/2001/04/xmldsig-more #
Elemen dalam namespace dari spesifikasi [XMLDSIG] ditandai
dengan menggunakan namespace prefix "DSIG" di bagian sisa
dokumen ini.
Pengidentifikasi untuk algoritma tanda tangan ECDSA sebagaimana didefinisikan dalam
[Eastlake] adalah:
http://www.w3.org/2001/04/xmldsig-more # ECDSA-sha1
Blake-Wilson, dkk. Informational [Page 3]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
3.2. XML Schema dan DTD Penggantian Pembukaan
3.2.1. XML Schema Pembukaan
Pembukaan selanjutnya akan digunakan dengan definisi XML Schema
diberikan dalam bagian yang tersisa dari dokumen ini.
<Xml version = "1.0" encoding = "UTF-8"??>
<Xs: schema
targetNamespace = "http://www.w3.org/2001/04/xmldsig-more #"
xmlns: ECDSA = "http://www.w3.org/2001/04/xmldsig-more #"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
elementFormDefault = "berkualitas" attributeFormDefault = "wajar tanpa pengecualian"
versi = "0,2">
3.2.2. DTD Penggantian
Untuk menyertakan ECDSA dalam XML-tanda tangan sintaks, definisi berikut
Key.ANY entitas yang HARUS mengganti salah satu di [XMLDSIG]:
<ENTITY KeyValue.ANY% '| ECDSA: ECDSAKeyValue'!>
3.3. ECDSA Signatures
Input ke algoritma ECDSA adalah representasi dikanonikal
dari DSIG: elemen SignedInfo sebagaimana ditentukan dalam Bagian 3
[XMLDSIG].
Output dari algoritma ECDSA terdiri dari sepasang bilangan bulat
biasanya disebut oleh pasangan (r, s). Nilai tanda tangan (nilai teks
dari DSIG elemen: SignatureValue - lihat bagian 4.2 dari [XMLDSIG])
terdiri dari pengkodean base64 dari Rangkaian dua octet-
aliran yang masing-masing hasil dari pengkodean octet-dari
nilai r dan s. Rangkaian ini dijelaskan dalam bagian E3.1 dari
[IEEE1363].
3.4. Kunci ECDSA Nilai
Sintaks yang digunakan untuk nilai-nilai kunci ECDSA erat mengikuti sintaks ASN.1
didefinisikan dalam ANSI X9.62 [X9.62].
3.4.1. Nilai Elemen kunci Akar
Para ECDSAKeyValue elemen digunakan untuk encoding kunci ECDSA publik.
Untuk digunakan dengan XMLDSIG, cukup menggunakan elemen dalam DSIG: KeyValue
(Seperti DSIG elemen standar: RSAKeyValue atau
DSIG: DSAKeyValue).
Blake-Wilson, dkk. Informational [Page 4]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
Unsur ini terdiri dari sebuah DomainParameters subelement opsional dan
yang PublicKey wajib subelement. Jika Domainparameters yang hilang,
aplikasi implisit tahu tentang hal itu dari cara lain.
Skema Definisi:
<xs:element name="ECDSAKeyValue" type="ecdsa:ECDSAKeyValueType"/>
<xs:complexType name="ECDSAKeyValueType">
<xs:sequence>
<Xs: nama elemen = "DomainParameters" type = "ECDSA: DomainParamsType"
minOccurs = "0" />
<xs:element name="PublicKey" type="ecdsa:ECPointType"/>
</ Xs: sequence>
</ Xs: complexType>
DTD Definisi:
<ELEMEN ECDSAKeyValue! (DomainParameters, PublicKey?)>
<ELEMEN PublicKey! (X, Y)?>
<! ELEMEN X KOSONG>
<ATTLIST X Nilai CDATA # REQUIRED>
<ELEMEN Y! KOSONG>
<ATTLIST Y CDATA Nilai # DIBUTUHKAN!>
3.4.2. EC Domain Parameter
Parameter domain dapat dikodekan secara eksplisit menggunakan elemen
ExplicitParams, atau dengan referensi menggunakan NamedCurve elemen. Yang terakhir
hanya terdiri dari sebuah atribut bernama URN, yang menyandang seragam
sumber daya nama sebagai nilainya. Untuk kurva bernama standar seperti
[X9.62], [FIPS-186-2], atau [SEC2], yang OIDs kurva ini HARUS
digunakan dalam URN, misalnya atribut, = "urn: oid: 1.2.840.10045.3.1.1". Para
mekanisme untuk OIDs pengkodean dalam guci ditunjukkan dalam [RFC3061].
Skema Definisi:
<xs:complexType name="DomainParamsType">
<xs:choice>
<Xs: nama elemen = "ExplicitParams"
type = "ECDSA: ExplicitParamsType" />
<xs:element name="NamedCurve">
<xs:complexType>
<xs:attribute name="URN" type="xs:anyURI" use="required"/>
</ Xs: complexType>
</ Xs: element>
</ Xs: pilihan>
</ Xs: complexType>
Blake-Wilson, dkk. Informational [Halaman 5]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
DTD Definisi:
<DomainParameters ELEMEN! (ExplicitParams | NamedCurve)>
<! NamedCurve ELEMEN KOSONG>
<ATTLIST NamedCurve CDATA URN # REQUIRED>
Para ExplicitParams elemen digunakan untuk pengkodean eksplisit dari domain
parameter. Ini berisi tiga subelements: FieldParams menggambarkan
mendasari lapangan, CurveParams menggambarkan kurva eliptik, dan
BasePointParams menggambarkan titik dasar kurva eliptik.
Skema Definisi:
<xs:complexType name="ExplicitParamsType">
<xs:sequence>
<xs:element name="FieldParams" type="ecdsa:FieldParamsType"/>
<xs:element name="CurveParams" type="ecdsa:CurveParamsType"/>
<Xs: nama elemen = "BasePointParams"
type = "ECDSA: BasePointParamsType" />
</ Xs: sequence>
</ Xs: complexType>
DTD Definisi:
<ELEMEN ExplicitParams (FieldParams, CurveParams, BasePointParams)!>
3.4.2.1. Parameter Lapangan
Para FieldParams elemen digunakan untuk encoding parameter lapangan. Para
sesuai tipe XML Schema FieldParamsType dinyatakan abstrak
dan akan diperpanjang oleh jenis khusus untuk bidang utama,
karakteristik dua bidang, dan aneh bidang ekstensi karakteristik
parameter.
The XML Schema PrimeFieldParamsType jenis berasal dari
FieldParamsType dan digunakan untuk encoding parameter lapangan utama. Para
ketik berisi urutan bidang utama sebagai subelement tunggal
P.
The XML Schema CharTwoFieldParamsType jenis ini berasal dari
FieldParamsType dan digunakan untuk parameter pengkodean dari
karakteristik dua bidang. Ini adalah jenis abstrak lagi dan akan
diperpanjang oleh jenis khusus untuk basis trinomial dan pentanomial
bidang. F2m bidang Gaussian Basis normal tidak didukung oleh
spesifikasi untuk meredakan interoperabilitas. Umum baik
jenis khusus adalah M elemen, derajat perpanjangan
lapangan.
Blake-Wilson, dkk. Informational [Page 6]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
The XML Schema TnBFieldParamsType jenis berasal dari
CharTwoFieldParamsType dan digunakan untuk pengkodean dasar trinomial
bidang. Ia menambahkan K elemen tunggal, yang merupakan integer
k, di mana x ^ m + x ^ k + 1 adalah polinomial reduksi.
The XML Schema PnBFieldParamsType jenis berasal dari
CharTwoFieldParamsType dan digunakan untuk pengkodean dasar pentanomial
bidang. Ia menambahkan tiga elemen K1, K2 dan K3, yang mewakili
bilangan bulat k1, k2 dan k3 masing-masing, di mana x ^ m + x ^ k3 + x ^ k2 +
x ^ k1 + 1 adalah polinomial reduksi.
The XML Schema OddCharExtensionFieldParamsType jenis ini berasal dari
yang FieldParamsType dan digunakan untuk parameter pengkodean yang ganjil
karakteristik ekstensi lapangan. Jenis ini mengandung dua elemen: M,
yang mewakili tingkat perpanjangan m lapangan, dan W, yang
w mewakili bilangan bulat, di mana x ^ m - w adalah polinomial reduksi.
Skema Definisi:
<xs:complexType name="FieldParamsType" abstract="true"/>
<xs:complexType name="PrimeFieldParamsType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldParamsType">
<xs:sequence>
<xs:element name="P" type="xs:positiveInteger"/>
</ Xs: sequence>
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="CharTwoFieldParamsType" abstract="true">
<xs:complexContent>
<xs:extension base="ecdsa:FieldParamsType">
<xs:sequence>
<xs:element name="M" type="xs:positiveInteger"/>
</ Xs: sequence>
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="OddCharExtensionFieldParamsType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldParamsType">
<xs:sequence>
<xs:element name="M" type="xs:positiveInteger"/>
<xs:element name="W" type="xs:positiveInteger"/>
</ Xs: sequence>
Blake-Wilson, dkk. Informational [Halaman 7]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="TnBFieldParamsType">
<xs:complexContent>
<xs:extension base="ecdsa:CharTwoFieldParamsType">
<xs:sequence>
<xs:element name="K" type="xs:positiveInteger"/>
</ Xs: sequence>
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="PnBFieldParamsType">
<xs:complexContent>
<xs:extension base="ecdsa:CharTwoFieldParamsType">
<xs:sequence>
<xs:element name="K1" type="xs:positiveInteger"/>
<xs:element name="K2" type="xs:positiveInteger"/>
<xs:element name="K3" type="xs:positiveInteger"/>
</ Xs: sequence>
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
DTD Definisi:
<FieldParams ELEMEN (P | (M, K) | (M, K1, K2, K3) | (M, W))!>
<ELEMEN P! (# PCDATA)>
<ELEMEN M! (# PCDATA)>
<ELEMEN K! (# PCDATA)>
<ELEMEN K1 (# PCDATA)>
<ELEMEN K2! (# PCDATA)>
<ELEMEN K3 (# PCDATA)>
<ELEMEN W (# PCDATA)>
3.4.2.2. Kurva Parameter
Para CurveParams elemen digunakan untuk parameter pengkodean
kurva eliptik. Jenis XML Schema yang sesuai CurveParamsType
beruang elemen A dan B mewakili koefisien a dan b dari
kurva eliptik. Menurut algoritma yang ditentukan dalam lampiran
A3.3 dari [X9.62], Benih elemen opsional berisi nilai yang digunakan untuk
memperoleh koefisien kurva eliptik dihasilkan secara acak.
Blake-Wilson, dkk. Informational [Page 8]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
Skema Definisi:
<xs:complexType name="CurveParamsType">
<xs:sequence>
<xs:element name="A" type="ecdsa:FieldElemType"/>
<xs:element name="B" type="ecdsa:FieldElemType"/>
<xs:element name="Seed" type="xs:hexBinary" minOccurs="0"/>
</ Xs: sequence>
</ Xs: complexType>
DTD Definisi:
<CurveParams ELEMEN! (A, B, Seed?)>
<ELEMEN Sebuah KOSONG!>
<ATTLIST Sebuah Nilai CDATA # REQUIRED>
<! ELEMENT B KOSONG>
<ATTLIST B Nilai CDATA # REQUIRED>
<ELEMEN Benih (# PCDATA)>
3.4.2.3. Titik Dasar Parameter
Para BasePointParams elemen digunakan untuk parameter pengkodean tentang
titik dasar kurva eliptik. BasePoint merupakan dasar
titik itu sendiri, Orde menyediakan urutan titik dasar, dan
Kofaktor opsional menyediakan kofaktor dari titik dasar.
Skema Definisi:
<xs:complexType name="BasePointParamsType">
<xs:sequence>
<xs:element name="BasePoint" type="ecdsa:ECPointType"/>
<xs:element name="Order" type="xs:positiveInteger"/>
<Xs: nama elemen = "kofaktor" type = "xs: positiveInteger"
minOccurs = "0" />
</ Xs: sequence>
</ Xs: complexType>
DTD Definisi:
<BasePointParams ELEMEN! (BasePoint, Orde, kofaktor?)>
<ELEMEN BasePoint! (X, Y)?>
<ELEMEN Order (# PCDATA)>
<ELEMEN kofaktor! (# PCDATA)>
Blake-Wilson, dkk. Informational [Page 9]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
3.4.3. EC Poin
The XML Schema ECPointType jenis digunakan untuk encoding titik pada
kurva eliptik. Ini terdiri dari X dan Y subelements, menyediakan
x dan y koordinat dari titik tersebut. Titik kompresi
representasi tidak didukung oleh spesifikasi ini demi
desain sederhana.
Titik di tak terhingga dikodekan dengan menghilangkan kedua elemen X dan Y.
Para subelements X dan Y adalah dari FieldElemType tipe. Ini merupakan
tipe abstrak untuk elemen pengkodean dari kurva eliptik yang mendasari
lapangan dan diperpanjang oleh jenis khusus untuk elemen bidang utama
dan karakteristik dua elemen lapangan.
The XML Schema PrimeFieldElemType jenis digunakan untuk encoding prima
unsur lapangan. Ini berisi Nilai atribut tunggal yang bernama
Nilai mewakili elemen bidang sebagai integer.
The XML Schema CharTwoFieldElemType jenis digunakan untuk encoding
karakteristik dua elemen lapangan. Ini berisi atribut tunggal
bernama Nilai yang nilainya mewakili elemen bidang sebagai oktet
string. String oktet harus terdiri seperti yang ditunjukkan dalam ayat 2 dari
bagian 4.3.3 dari [X9.62].
The XML Schema OddCharExtensionFieldElemType jenis digunakan untuk
pengkodean elemen bidang ekstensi karakteristik aneh. Ini berisi
atribut tunggal bernama Nilai yang nilainya mewakili elemen bidang
sebagai integer. Integer harus terdiri seperti yang ditunjukkan dalam bagian
5.3.3 dari [IEEE1363a].
Skema Definisi:
<xs:complexType name="ECPointType">
<xs:sequence minOccurs="0">
<xs:element name="X" type="ecdsa:FieldElemType"/>
<xs:element name="Y" type="ecdsa:FieldElemType"/>
</ Xs: sequence>
</ Xs: complexType>
<xs:complexType name="FieldElemType" abstract="true"/>
Blake-Wilson, dkk. Informational [Page 10]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
<xs:complexType name="PrimeFieldElemType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldElemType">
<Xs: nama atribut = "Nilai" type = "xs: nonNegativeInteger"
menggunakan = "dibutuhkan" />
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="CharTwoFieldElemType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldElemType">
<Xs: nama atribut = "Nilai" type = "xs: hexBinary"
menggunakan = "dibutuhkan" />
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="OddCharExtensionFieldElemType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldElemType">
<Xs: nama atribut = "Nilai" type = "xs: nonNegativeInteger"
menggunakan = "dibutuhkan" />
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
4. Pertimbangan Keamanan
Pelaksana harus memastikan bahwa langkah-langkah keamanan yang tepat berada di
terjadi ketika mereka menyebarkan ECDSA dalam XMLDSIG. Secara khusus,
keamanan ECDSA memerlukan pemilihan yang cermat dari kedua ukuran kunci dan
domain parameter kurva eliptik. Seleksi pedoman untuk ini
parameter dan beberapa kurva direkomendasikan tertentu yang dianggap
aman disediakan dalam [X9.62], [FIPS-186-2], dan [SEC2]. Untuk lebih lanjut
keamanan diskusi, lihat [XMLDSIG].
5. Referensi Normatif
[Eastlake] Eastlake 3rd, D., "Tambahan keamanan XML Seragam
Sumber Daya Identifier (URI) ", RFC 4051, April 2005.
[X9.62] American National Standards Institute. ANSI X9.62-1998,
Kriptografi Kunci Publik untuk Financial Services
Industri: The Signature Elliptic Curve Digital
Algoritma. Januari 1999.
Blake-Wilson, dkk. Informational [Page 11]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
[XMLDSIG] Eastlake 3rd, D., Reagle, J., dan D. Solo, "(Extensible
Markup Language) XML Signature Syntax dan Pengolahan ",
RFC 3275, Maret 2002.
[XML-schema] Beech, D., Maloney, M., Mendelsohn, N., dan Thompson,
H., XML Schema Bagian 1: Struktur, Rekomendasi W3C,
Mei 2001. http://www.w3.org/TR/2001/REC-xmlschema-1-
20010502 / Biron, P., dan Malhotra, A., ML Schema Bagian 2:
Datatypes, Rekomendasi W3C, Mei 2001.
http://www.w3.org/TR/2001/REC-xmlschema-2-20010502/
6. Informatif Referensi
[FIPS-180-1] Informasi Pengolahan Standar federal Publikasi
(FIPS PUB) Standar 180-1, Secure Hash, April 1995.
[FIPS-186-2] Informasi Federal Pengolahan Standar Publikasi
(FIPS PUB) 186-2, Digital Signature Standard, Januari
2000.
[IEEE1363] Institut Electrical dan Electronics Engineers
(IEEE) 1363-2000 Standar, Spesifikasi Standar untuk
Kriptografi Kunci Publik, Januari 2000.
[IEEE1363a] Institut Electrical dan Electronics Engineers
(IEEE) Standar 1363, Draft Standar Spesifikasi
Kriptografi Kunci Publik - Amandemen 1: Tambahan
Teknik, Oktober 2002.
[KUNCI] Lenstra, A.K. dan Verheul, E.R., Memilih Cryptographic
Ukuran kunci. Oktober 1999. Disampaikan pada Public Key
Konferensi kriptografi, Melbourne, Australia, Januari
2000. http://www.cryptosavvy.com/
[RFC3061] Mealling, M., "Sebuah Ruang nama URN dari Identifier Obyek",
RFC 3061, Februari 2001.
[RFC3279] Bassham, L., Polk, W., dan R. Housley, "Algoritma dan
Pengidentifikasi untuk kunci X.509 Warung Internet
Infrastruktur Sertifikat dan Pencabutan Sertifikat
Daftar (CRL) Profil ", RFC 3279, April 2002.
[SEC1] Standar Kriptografi untuk Grup Efisien, SEC 1:
Elliptic Curve Cryptography, Versi 1.0, September
2000. http://www.secg.org
Blake-Wilson, dkk. Informational [Page 12]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
[SEC2] Standar Kriptografi untuk Grup Efisien, SEC 2:
Elliptic Curve Rekomendasi Domain Parameter, Versi
1.0, September 2000. http://www.secg.org
[XML] Bray, T., Maler, E., Paoli, J., dan Sperberg-McQueen, C.
M., Extensible Markup Language (XML) 1.0 (Kedua
Edition), Rekomendasi W3C, Oktober 2000.
http://www.w3.org/TR/2000/REC-xml-20001006
[XML-ns] Bray, T., Hollander, D., dan Awam, A., Namespaces di
XML, W3C Rekomendasi, Januari 1999.
http://www.w3.org/TR/1999/REC-xml-names-19990114/
7. Ucapan Terima Kasih
Para penulis ingin mengakui komentar yang sangat membantu banyak
Wolfgang Bauer, Donald Eastlake, Tom Gindin, Chris Hawk, Akihiro
Kato, Shiho Moriai, Joseph M. Reagle Jr, dan Francois Rousseau.
Blake-Wilson, dkk. Informational [Page 13]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
Lampiran A. Agregat XML Schema
<Xml version = "1.0" encoding = "UTF-8"??>
<Xs: schema
targetNamespace = "http://www.w3.org/2001/04/xmldsig-more #"
xmlns: ECDSA = "http://www.w3.org/2001/04/xmldsig-more #"
xmlns: xs = "http://www.w3.org/2001/XMLSchema"
elementFormDefault = "berkualitas"
attributeFormDefault = "wajar tanpa pengecualian"
versi = "0,2">
<- ECDSA nilai elemen kunci akar ->
<xs:element name="ECDSAKeyValue" type="ecdsa:ECDSAKeyValueType"/>
<xs:complexType name="ECDSAKeyValueType">
<xs:sequence>
<Xs: nama elemen = "DomainParameters"
type = "ECDSA: DomainParamsType" minOccurs = "0" />
<xs:element name="PublicKey" type="ecdsa:ECPointType"/>
</ Xs: sequence>
</ Xs: complexType>
<- EC domain penuh parameter ->
<xs:complexType name="DomainParamsType">
<xs:choice>
<Xs: nama elemen = "ExplicitParams"
type = "ECDSA: ExplicitParamsType" />
<xs:element name="NamedCurve">
<xs:complexType>
<xs:attribute name="URN" type="xs:anyURI" use="required"/>
</ Xs: complexType>
</ Xs: element>
</ Xs: pilihan>
</ Xs: complexType>
<xs:complexType name="FieldParamsType" abstract="true"/>
<xs:complexType name="PrimeFieldParamsType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldParamsType">
<xs:sequence>
<xs:element name="P" type="xs:positiveInteger"/>
</ Xs: sequence>
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="CharTwoFieldParamsType" abstract="true">
<xs:complexContent>
Blake-Wilson, dkk. Informational [Page 14]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
<xs:extension base="ecdsa:FieldParamsType">
<xs:sequence>
<xs:element name="M" type="xs:positiveInteger"/>
</ Xs: sequence>
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="OddCharExtensionFieldParamsType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldParamsType">
<xs:sequence>
<xs:element name="M" type="xs:positiveInteger"/>
<xs:element name="W" type="xs:positiveInteger"/>
</ Xs: sequence>
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="TnBFieldParamsType">
<xs:complexContent>
<xs:extension base="ecdsa:CharTwoFieldParamsType">
<xs:sequence>
<xs:element name="K" type="xs:positiveInteger"/>
</ Xs: sequence>
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="PnBFieldParamsType">
<xs:complexContent>
<xs:extension base="ecdsa:CharTwoFieldParamsType">
<xs:sequence>
<xs:element name="K1" type="xs:positiveInteger"/>
<xs:element name="K2" type="xs:positiveInteger"/>
<xs:element name="K3" type="xs:positiveInteger"/>
</ Xs: sequence>
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="ExplicitParamsType">
<xs:sequence>
<xs:element name="FieldParams" type="ecdsa:FieldParamsType"/>
<xs:element name="CurveParams" type="ecdsa:CurveParamsType"/>
<Xs: nama elemen = "BasePointParams"
type = "ECDSA: BasePointParamsType" />
</ Xs: sequence>
</ Xs: complexType>
<xs:complexType name="CurveParamsType">
<xs:sequence>
<xs:element name="A" type="ecdsa:FieldElemType"/>
Blake-Wilson, dkk. Informational [Page 15]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
<xs:element name="B" type="ecdsa:FieldElemType"/>
<xs:element name="Seed" type="xs:hexBinary" minOccurs="0"/>
</ Xs: sequence>
</ Xs: complexType>
<xs:complexType name="BasePointParamsType">
<xs:sequence>
<xs:element name="BasePoint" type="ecdsa:ECPointType"/>
<xs:element name="Order" type="xs:positiveInteger"/>
<Xs: nama elemen = "kofaktor" type = "xs: positiveInteger"
minOccurs = "0" />
</ Xs: sequence>
</ Xs: complexType>
<-! EC point ->
<xs:complexType name="ECPointType">
<xs:sequence minOccurs="0">
<xs:element name="X" type="ecdsa:FieldElemType"/>
<xs:element name="Y" type="ecdsa:FieldElemType"/>
</ Xs: sequence>
</ Xs: complexType>
<- Elemen Lapangan ->
<xs:complexType name="FieldElemType" abstract="true"/>
<xs:complexType name="PrimeFieldElemType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldElemType">
<Xs: nama atribut = "Nilai" type = "xs: nonNegativeInteger"
menggunakan = "dibutuhkan" />
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="CharTwoFieldElemType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldElemType">
<Xs: nama atribut = "Nilai" type = "xs: hexBinary"
menggunakan = "dibutuhkan" />
</ Xs: extension>
</ Xs: complexContent>
</ Xs: complexType>
<xs:complexType name="OddCharExtensionFieldElemType">
<xs:complexContent>
<xs:extension base="ecdsa:FieldElemType">
<Xs: nama atribut = "Nilai" type = "xs: nonNegativeInteger"
menggunakan = "dibutuhkan" />
</ Xs: extension>
</ Xs: complexContent>
Blake-Wilson, dkk. Informational [Page 16]
RFC 4050 ECDSA untuk XML Digital Signatures April 2005
</ Xs: complexType>
</ Xs: schema>
Lampiran B. Agregat DTD
<ELEMEN ECDSAKeyValue! (DomainParameters, PublicKey?)>
<ELEMEN PublicKey! (X, Y)?>
<! ELEMEN X KOSONG>
<ATTLIST X Nilai CDATA # REQUIRED>
<ELEMEN Y! KOSONG>
<ATTLIST Y CDATA Nilai # DIBUTUHKAN!>
<DomainParameters ELEMEN! (ExplicitParams | NamedCurve)>
<! NamedCurve ELEMEN KOSONG>
<ATTLIST NamedCurve CDATA URN # REQUIRED>
<ELEMEN ExplicitParams (FieldParams, CurveParams, BasePointParams)!>
<FieldParams ELEMEN (P | (M, K) | (M, K1, K2, K3) | (M, W))!>
<ELEMEN P! (# PCDATA)>
<ELEMEN M! (# PCDATA)>
<ELEMEN W (# PCDATA)>
<ELEMEN K! (# PCDATA)>
<ELEMEN K1 (# PCDATA)>
<ELEMEN K2! (# PCDATA)>
<ELEMEN K3 (# PCDATA)>
<CurveParams ELEMEN! (A, B, Seed?)>
<ELEMEN Sebuah KOSONG!>
<ATTLIST Sebuah Nilai CDATA # REQUIRED>
<! ELEMENT B KOSONG>
<ATTLIST B Nilai CDATA # REQUIRED>
<ELEMEN Benih (# PCDATA)>
<BasePointParams ELEMEN! (BasePoint, Orde, kofaktor?)>
<ELEMEN BasePoint! (X, Y)?>
<ELEMEN Order (# PCDATA)>
<ELEMEN kofaktor! (# PCDATA)>
CONTOH SOURCE CODE
Kode ini dapat digunakan / ditambahkan dalam aplikasi apapun dengan hanya menambahkan kelas yang ada ke dalam kode sumber Anda. Proses lainnya telah diimplementasikan dalam format yang mudah untuk dimengerti dan tepat sesuai dengan fleksibilitas program yang anda butuhkan.
Download Contoh Program + Source Code Artikel di Atas
Artikel lainnya :
+ Source Code ASP.NET + Source Code C++ + Source Code C-Sharp + Source Code Delphi + Source Code Java + Source Code JavaScript + Source code MATLAB + Source Code Ruby + Source Code VB.6.0 + Source Code VB.Net - Adaptive Resonance Theory (ART) - Algoritma & Pemrograman - Algoritma Backpropagation - Algoritma Blowfish - Algoritma Cipher - Algoritma Clustering Gaussians - Algoritma Eigenface - Algoritma Fuzzy C-Means - Algoritma Genetika - Algoritma Huffman - Algoritma Komputer Quantum - Algoritma LOKI - Algoritma MD5 - Algoritma Persamaan Diophantine - Algoritma Rijndael - Algoritma Semut - Algoritma Tabu Search - Analisis Kriteria Majemuk - Analytical Hierarchy Sistem (AHP) - Ant Colony System - Case Based Reasoning (CBR) - Chaotic Encryption Algorithm - Data Encryption Standard (DES) - Discrete Wavelet Transform - Elliptic Curve Digital Signature Algorithm (ECDSA) - Haar Wavelet - Hidden Markov Model (HMM) - JST Hopfield - Least Significant Bit (LSB) - Metode Analisis Heuristik - Metode Analisis Regresi - Metode Burrows-Wheeler Transform - Metode Forward Chaining - Metode Gost - Metode Huffman Statis - Metode Hybrid - Metode Insertion Heuristic - Metode Maksimum Likelihood - Metode Newton- Raphson - Metode Otsu - Metode Penyetaraan Histogram - Optical Character Recognition (OCR) - Propagasi Balik - Self Organizing Map (SOM) - Tabu Search - Teorema Bayes - Transformasi Wavelet Kontinyu Uncategorized ~ Artificial Intelligence ~ Blind Signature ~ Data Mining ~ Decission Support Sistem ~ Digital Signal Processing (DSP) ~ Digital Signature ~ Enkripsi & Dekripsi ~ Image & Data Prossesing ~ Jaringan MANET ~ Jaringan Neural Quantum ~ Jaringan Syaraf Tiruan ~ Judul Skripsi Tesis Informatika ~ Kecerdasan Buatan ~ Kriptografi ~ Model Pemrograman Linear (MPL) ~ Multiple Trip Vehicle Routing Problem (MTVRP) ~ Neural Network ~ Pengenalan Pola ~ Pengenalan Wajah ~ Pengolahan Citra ~ Penjadwalan ~ Pewarnaan Simpul Graph ~ Recognition ~ Sistem Pakar ~ Steganography ~ Tanda Tangan Digital ~ Traveling Salesman Problem (TSP) ~ Watermarking
Tutorial Elliptic Curve ECDSA untuk XML Digital Signatures Contoh Program + Source Code
ActionScript AS3 ASP.NET AJAX C / C++ C# Clipper COBOL ColdFusion DataFlex Delphi Emacs Lisp Fortran FoxPro Java J2ME JavaScript JScript Lingo MATLAB Perl PHP PostScript Python SQL VBScript Visual Basic 6.0 Visual Basic .NET Flash MySQL Oracle Android
Rating: 100% based on 99998 ratings. 5 user reviews.
Ditulis Oleh hank2
{ 0 komentar... Views All / Send Comment! }
Posting Komentar