RFC 4050 - Using the Elliptic Curve Signature Algorithm (ECD(2)

时间:2006-10-31 来源: 作者: 点击:
[KEYS]Lenstra,A.K.andVerheul,E.R.,SelectingCryptographic KeySizes.October1999.PresentedatPublicKey CryptographyConference,Melbourne,Australia,January 2000.http://www.cryptosavvy.com/ [RFC3061]Meallin
  

   [KEYS]       Lenstra, A.K. and Verheul, E.R., Selecting Cryptographic
                Key Sizes.  October 1999.  Presented at Public Key
                Cryptography Conference, Melbourne, Australia, January
                2000.  http://www.cryptosavvy.com/

   [RFC3061]    Mealling, M., "A URN Namespace of Object Identifiers",
                RFC 3061, February 2001.

   [RFC3279]    Bassham, L., Polk, W., and R. Housley, "Algorithms and
                Identifiers for the Internet X.509 Public Key
                Infrastructure Certificate and Certificate Revocation
                List (CRL) Profile", RFC 3279, April 2002.

   [SEC1]       Standards for Efficient Cryptography Group, SEC 1:
                Elliptic Curve Cryptography, Version 1.0, September
                2000.  http://www.secg.org

   [SEC2]       Standards for Efficient Cryptography Group, SEC 2:
                Recommended Elliptic Curve Domain Parameters, Version
                1.0, September 2000.  http://www.secg.org

   [XML]        Bray, T., Maler, E., Paoli, J., and Sperberg-McQueen, C.
                M., Extensible Markup Language (XML) 1.0 (Second
                Edition), W3C Recommendation, October 2000.
                http://www.w3.org/TR/2000/REC-xml-20001006

   [XML-ns]     Bray, T., Hollander, D., and Layman, A., Namespaces in
                XML, W3C Recommendation, January 1999.
                http://www.w3.org/TR/1999/REC-xml-names-19990114/

7.  Acknowledgements

   The authors would like to acknowledge the many helpful comments of
   Wolfgang Bauer, Donald Eastlake, Tom Gindin, Chris Hawk, Akihiro
   Kato, Shiho Moriai, Joseph M. Reagle Jr., and Francois Rousseau.

Appendix A.  Aggregate 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="qualified"
     attributeFormDefault="unqualified"
     version="0.2">

     <!--ECDSA key value root element-->

     <xs:element name="ECDSAKeyValue" type="ecdsa:ECDSAKeyValueType"/>
     <xs:complexType name="ECDSAKeyValueType">
       <xs:sequence>
         <xs:element name="DomainParameters"
                     type="ecdsa:DomainParamsType" minOccurs="0"/>
         <xs:element name="PublicKey" type="ecdsa:ECPointType"/>
       </xs:sequence>
     </xs:complexType>

     <!--EC domain parameters-->

     <xs:complexType name="DomainParamsType">
       <xs:choice>
         <xs:element name="ExplicitParams"
                     type="ecdsa:ExplicitParamsType"/>
         <xs:element name="NamedCurve">
           <xs:complexType>
             <xs:attribute name="URN" type="xs:anyURI" use="required"/>
           </xs:complexType>
         </xs:element>
       </xs:choice>
     </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>

         <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:element name="BasePointParams"
                     type="ecdsa:BasePointParamsType"/>
       </xs:sequence>
     </xs:complexType>
     <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>
     <xs:complexType name="BasePointParamsType">
       <xs:sequence>
         <xs:element name="BasePoint" type="ecdsa:ECPointType"/>
         <xs:element name="Order" type="xs:positiveInteger"/>
         <xs:element name="Cofactor" 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>

     <!--Field element-->

     <xs:complexType name="FieldElemType" abstract="true"/>
     <xs:complexType name="PrimeFieldElemType">
       <xs:complexContent>
         <xs:extension base="ecdsa:FieldElemType">
           <xs:attribute name="Value" type="xs:nonNegativeInteger"
                         use="required"/>
         </xs:extension>
       </xs:complexContent>
     </xs:complexType>
     <xs:complexType name="CharTwoFieldElemType">
       <xs:complexContent>
         <xs:extension base="ecdsa:FieldElemType">
           <xs:attribute name="Value" type="xs:hexBinary"
                         use="required"/>
         </xs:extension>
       </xs:complexContent>
     </xs:complexType>
     <xs:complexType name="OddCharExtensionFieldElemType">
       <xs:complexContent>
         <xs:extension base="ecdsa:FieldElemType">
           <xs:attribute name="Value" type="xs:nonNegativeInteger"
                         use="required"/>
         </xs:extension>
       </xs:complexContent>

     </xs:complexType>
   </xs:schema>

Appendix B.  Aggregate DTD

   <!ELEMENT ECDSAKeyValue (DomainParameters?, PublicKey)>
   <!ELEMENT PublicKey (X, Y)?>
   <!ELEMENT X EMPTY>
   <!ATTLIST X Value CDATA #REQUIRED>
   <!ELEMENT Y EMPTY>
   <!ATTLIST Y Value CDATA #REQUIRED>
   <!ELEMENT DomainParameters (ExplicitParams | NamedCurve)>
   <!ELEMENT NamedCurve EMPTY>
   <!ATTLIST NamedCurve URN CDATA #REQUIRED>
   <!ELEMENT ExplicitParams (FieldParams, CurveParams, BasePointParams)>
   <!ELEMENT FieldParams (P | (M, K) | (M, K1, K2, K3) | (M, W))>
   <!ELEMENT P (#PCDATA)>
   <!ELEMENT M (#PCDATA)>
   <!ELEMENT W (#PCDATA)>
   <!ELEMENT K (#PCDATA)>
   <!ELEMENT K1 (#PCDATA)>
   <!ELEMENT K2 (#PCDATA)>
   <!ELEMENT K3 (#PCDATA)>
   <!ELEMENT CurveParams (A, B, Seed?)>
   <!ELEMENT A EMPTY>
   <!ATTLIST A Value CDATA #REQUIRED>
   <!ELEMENT B EMPTY>
   <!ATTLIST B Value CDATA #REQUIRED>
   <!ELEMENT Seed (#PCDATA)>
   <!ELEMENT BasePointParams (BasePoint, Order, Cofactor?)>
   <!ELEMENT BasePoint (X, Y)?>
   <!ELEMENT Order (#PCDATA)>
   <!ELEMENT Cofactor (#PCDATA)>

Authors’ Addresses

   Simon Blake-Wilson
   BCI
   96 Spadina Ave, Unit 606
   Toronto, ON, M5V 2J6, Canada

   EMail: sblakewilson@bcisse.com

   Gregor Karlinger
   Federal Staff Office for IT Strategies/Federal Chancellery
   Ballhausplatz 2
   1014 Wien, Austria

   EMail: gregor.karlinger@cio.gv.at

   Tetsutaro Kobayashi
   NTT Laboratories
   1-1 Hikarinooka, Yokosuka, 239-0847, Japan

   EMail: kotetsu@isl.ntt.co.jp

   Yongge Wang
   University of North Carolina at Charlotte
   9201 University City Blvd
   Charlotte, NC 28223, USA

   EMail: yonwang@uncc.edu

Full Copyright Statement

   Copyright (C) The Internet Society (2005).

   This document is subject to the rights, licenses and restrictions
   contained in BCP 78, and except as set forth therein, the authors
   retain all their rights.

   This document and the information contained herein are provided on an
   "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
   OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
   ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED,
   INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE
   INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
   WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.

Intellectual Property

   The IETF takes no position regarding the validity or scope of any
   Intellectual Property Rights or other rights that might be claimed to
   pertain to the implementation or use of the technology described in
   this document or the extent to which any license under such rights
   might or might not be available; nor does it represent that it has
   made any independent effort to identify any such rights.  Information
   on the procedures with respect to rights in RFC documents can be
   found in BCP 78 and BCP 79.

   Copies of IPR disclosures made to the IETF Secretariat and any
   assurances of licenses to be made available, or the result of an
   attempt made to obtain a general license or permission for the use of
   such proprietary rights by implementers or users of this
   specification can be obtained from the IETF on-line IPR repository at
   http://www.ietf.org/ipr.

   The IETF invites any interested party to bring to its attention any
   copyrights, patents or patent applications, or other proprietary
   rights that may cover technology that may be required to implement
   this standard.  Please address the information to the IETF at ietf-
   ipr@ietf.org.

Acknowledgement

   Funding for the RFC Editor function is currently provided by the
   Internet Society.
------分隔线----------------------------
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 密码: 验证码:
推荐内容