TLS Working Group Ari Singer
INTERNET-DRAFT NTRU Cryptosystems
Expires: January 3, 2002 July 3, 2001
NTRU Cipher Suites for TLS
<draft-ietf-tls-ntru-00.txt>
Status of this Memo
This document is an Internet-Draft and is in full conformance
with all provisions of Section 10 of RFC 2026 [RFC2026].
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six
months and may be updated, replaced, or obsoleted by other documents
at any time. It is inappropriate to use Internet-Drafts as
reference material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
Conventions used in this document
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in
this document are to be interpreted as described in RFC 2119
[RFC2119].
Abstract
This document defines a group of new TLS cipher suites that utilize
the NTRU encryption algorithm and the NSS signature algorithm.
These cipher suites are designed to maximize computational
efficiency on both the client and server sides and ease deployment
of the TLS protocol on constrained and embedded devices. The
document assumes the reader is familiar with the TLS protocol.
Table of Contents
Status of this Memo................................................1
Conventions used in this document..................................1
Abstract...........................................................1
1. Overview........................................................3
2. NTRU Key Exchange Algorithms....................................3
Singer INTERNET DRAFT - Expires January 2002 [Page 1]
NTRU Cipher Suites for TLS July 2001
2.1 NTRU_NSS.......................................................4
2.2 NTRU_RSA.......................................................4
3. NTRU Client Authentication......................................5
3.1 nss_sign.......................................................5
3.2 rsa_nss........................................................5
4. Message Structures..............................................6
4.1 Server Certificate.............................................6
4.2 Server Certificate Request.....................................7
4.3 Client Certificate.............................................8
4.4 Client Key Exchange............................................8
4.5 Client Certificate Verify......................................9
5. Cryptographic Computations and Encoding........................10
5.1 NSS Digital Signing...........................................11
5.2 NSS Signature Verification....................................11
5.3 NTRU Encryption...............................................12
5.4 NTRU Decryption...............................................12
6. Cipher Suites..................................................13
7. Security Considerations........................................13
8. Intellectual Property Rights...................................13
9. References.....................................................15
Authors' Addresses................................................15
Singer INTERNET DRAFT - Expires January 2002 [Page 2]
NTRU Cipher Suites for TLS July 2001
1. Overview
The TLS protocol was designed with the purpose of enabling private
and authenticated communication over the Internet, typically between
high bandwidth and computationally rich entities. This goal is
achieved through the use of a combination of public-key techniques,
which provide authentication and key agreement between two parties
that may not have a-priori knowledge of each other, and symmetric
key techniques, which provide data privacy, continued authentication
and efficiencies in bandwidth and computational effort.
The purpose of this document is to specify new cipher suites that
significantly reduce the computational cost of public-key operations
and that are easy to implement on constrained devices. In practice,
the computational cost of the public-key computations in TLS causes
the most latency in the handshake and is often the limiting factor
for server capacity of running multiple TLS sessions at once. In
addition, TLS, especially with client authentication, may be
difficult to implement on wireless devices and other constrained
devices due to memory and computational limitations. The use of the
NTRU encryption algorithm in the TLS handshake and the use of the
NSS signature algorithm in the handshake and digital certificates
may allow for greater server scalability, decreased latency in the
handshake and deployment of the TLS protocol on a larger population
of devices.
This document specifies only cipher suites and the aspects of the
TLS protocol that need to be modified in order to implement the
cipher suites. No other changes to the TLS protocol are required.
For use of this Internet Draft, familiarity with the TLS protocol is
assumed. For full details of the TLS protocol, see RFC 2246
[RFC2246].
In this document, the terms Client Hello, Server Hello and Client
Response refer to the grouping of consecutive messages sent in the
initial handshake by either the server or client. The terms
ClientHello, ServerKeyExchange, etc. refer to the specific messages
defined in the TLS specification [RFC2246].
2. NTRU Key Exchange Algorithms
This document defines two new key exchange algorithms based on NTRU
for use within TLS. These algorithms all utilize the NTRU
encryption algorithm, but utilize different authentication
mechanisms.
The key exchange algorithms are as follows:
Key Exchange Algorithm Description
NTRU_NSS NTRU encryption with NSS signatures
NTRU_RSA NTRU encryption with RSA signatures
Singer INTERNET DRAFT - Expires January 2002 [Page 3]
NTRU Cipher Suites for TLS July 2001
In both of the above key exchange algorithms, the server SHALL send
an X.509 certificate in the Certificate field that is included in
the Server Hello. This certificate SHALL contain an NTRU public key
and be signed with the specified signature algorithm. The client
SHALL verify that the certificate is valid and, if it is valid,
generate a pre-master secret and encrypt it with the server public
key. After successful verification of the server certificate, the
client SHALL send the encrypted pre-master secret in the
ClientKeyExchange field that is included in the Client Response. If
the server desires for the client to be authenticated, the server
MAY request a client certificate. Client certificate types for
client authentication are defined in this document and specified in
section 3.
The key strength of the NTRU public key determines the size of the
pre-master secret. The following table shows the required sizes of
the pre-master secret with the corresponding NTRU key strength.
NTRU 251, 347 and 503 provide roughly equivalent security to RSA
1024, RSA 2048 and RSA 4096 respectively.
Key Strength Pre-master Secret Size
NTRU 251 20 Bytes
NTRU 347 32 Bytes
NTRU 503 48 Bytes
2.1 NTRU_NSS
For key exchanges using NTRU encryption with NSS signatures, the
server certificate SHALL be an X.509 certificate that includes an
NTRU public key and is signed by the NSS signature algorithm. The
basic X.509 certificate structure may be found in RFC 2459 [RFC2459]
and the ASN.1 syntax for NTRU public keys and NSS digital signatures
may be found in Efficient Embedded Security Standard (EESS) #1
[EESS#1].
The NSS signature verification on the certificate and the NTRU
encryption and decryption of the pre-master secret SHALL be
performed as specified in EESS #1 [EESS#1]. The exact data
structure for NTRU and NSS public keys, NTRU encrypted data and NSS
signatures are defined in EESS #1 [EESS#1] and explicitly specified
in section 4.
2.2 NTRU_RSA
For key exchanges using NTRU encryption with RSA signatures, the
server certificate SHALL be an X.509 certificate that includes an
NTRU public key and is signed using the RSA signature algorithm.
The approved methods for computing and verifying RSA signatures are
listed in RFC 2246 [RFC2246], which references PKCS #1 [PKCS1]. The
NTRU encryption and decryption of the pre-master secret SHALL be
performed as specified in EESS #1 [EESS#1]. The data structures for
RSA signatures are specified in RFC 2246 [RFC2246], which references
Singer INTERNET DRAFT - Expires January 2002 [Page 4]
NTRU Cipher Suites for TLS July 2001
PKCS #1 [PKCS1]. The exact data structure for NTRU public keys and
NTRU encrypted data are defined in EESS #1 [EESS#1] and explicitly
specified in section 4.
3. NTRU Client Authentication
This document defines two new methods of client authentication based
on NTRU for the TLS protocol. Both techniques utilize the NSS
signature algorithm and the certificates MAY be signed using either
RSA or NSS. If client authentication is desired during a TLS
handshake, the client MAY present a certificate in either of the
formats defined below or in any format permitted by RFC 2246
[RFC2246].
The client authentication mechanisms are as follows:
Client Certificate Type Description
nss_sign NSS signature key certificate signed by
NSS
rsa_nss NSS signature key certificate signed by
RSA
During the initial handshake between the server and client, the
server MAY send a certificate request. The certificate request
SHALL include an indication of the types of certificates that the
server accepts and the certificate authorities that the server
trusts.
When a client certificate is requested by the server, if an
appropriate certificate is available, the client SHALL include a
client certificate in the Certificate field of the Client Response.
In addition, the client SHALL include a digital signature of the
handshake messages in the CertificateVerify field of the Client
Response.
3.1 nss_sign
For client authentication using NSS signatures, the client
certificate SHALL be an X.509 certificate that includes an NSS
public key and is signed by the NSS signature algorithm. The ASN.1
syntax for NSS public keys and NSS digital signatures may be found
in EESS #1 [EESS#1].
The NSS signature generation on the handshake messages and the NSS
signature verification of the certificate and handshake messages
SHALL be performed as specified in EESS #1 [EESS#1]. The exact data
structure for NSS public keys and NSS signatures are defined in EESS
#1 [EESS#1] and explicitly specified in section 4.
3.2 rsa_nss
For client authentication using NSS signatures and RSA signed
certificates, the client certificate SHALL be an X.509 certificate
Singer INTERNET DRAFT - Expires January 2002 [Page 5]
NTRU Cipher Suites for TLS July 2001
that includes an NSS public key and is signed using the RSA
signature algorithm.
The approved methods for computing and verifying RSA signatures are
listed in RFC 2246 [RFC2246], which references PKCS #1 [PKCS1]. The
NSS signature and verification of the handshake messages SHALL be
performed as specified in EESS #1 [EESS#1]. The data structures for
RSA signatures are specified in RFC 2246 [RFC2246], which references
PKCS #1 [PKCS1]. The exact data structure for NSS public keys and
NSS signatures are defined in EESS #1 [EESS#1] and explicitly
specified in section 4.
4. Message Structures
This section defines the specific message data structures necessary
for implementation of the TLS protocol using the NTRU and NSS
cryptographic algorithms. These definitions should be taken within
the context of the TLS protocol as defined in RFC 2246 [RFC2246] and
used where appropriate. The naming conventions for the specific
fields are consistent with RFC 2246 [RFC2246]. The cryptographic
computations and encoding of NTRU and NSS cryptographic data items
are specified in section 5.
The following data structures are defined in this section:
Data Structure Description
Server Certificate The signed data structure that is sent
during the Server Hello for server
authentication and key exchange.
Server Certificate Request The data structure that is used to
request a client certificate for client
authentication.
Client Certificate The signed data structure that is sent
during the Client Response for client
authentication.
Client Key Exchange The data structure that includes the
encrypted pre-master secret for the
upcoming secure session.
Client Certificate Verify The signature that is sent during the
Client Response that authenticates the
client for that handshake.
4.1 Server Certificate
When this message will be sent:
In all non-anonymous TLS handshakes, the server sends a server
certificate to the client during the Server Hello. This
message will always immediately follow the ServerHello message.
Meaning of this message:
The certificate type SHALL be appropriate for the selected
cipher suite's key exchange algorithm and is generally an
X.509v3 certificate. The public key may be of any length. The
Singer INTERNET DRAFT - Expires January 2002 [Page 6]
NTRU Cipher Suites for TLS July 2001
certificate is used to authenticate the server to the client
and provide the encryption key for key exchange.
Key Exchange Algorithm Certificate Key Type
NTRU_NSS NTRU encryption key; the certificate
SHALL allow the key to be used for
encryption. The algorithm used to sign
the certificate SHALL be NSS.
NTRU_RSA NTRU encryption key; the certificate
SHALL allow the key to be used for
encryption. The algorithm used to sign
the certificate SHALL be RSA.
The certificate profiles are defined by the IETF PKIX working group
[RFC2459]. NTRU and NSS key and cryptographic formats are defined
by the CEES [EESS#1]. RSA key and cryptographic formats are defined
by PKCS #1 [PKCS#1]. When a key usage extension is present, the
keyEncipherment bit must be present to allow encryption.
Structure of this message:
opaque ASN.1Cert<1..2^24-1>;
struct {
ASN.1Cert certificate_list<0..2^24-1>;
} Certificate;
certificate_list
This is a sequence of X.509v3 certificates as specified in RFC
2246 [RFC2246] except that the key, signature and parameter
fields for NTRU and NSS are as specified in EESS #1 [EESS#1].
4.2 Server Certificate Request
When this message will be sent:
A non-anonymous server MAY request a certificate from the
client if client authentication is desired. This message, if
sent, SHALL be sent in the Server Hello immediately following
the ServerKeyExchange message, if it is sent, or the Server
Certificate message.
Meaning of this message:
This message informs the client that the server requests the
use of a client certificate. It informs the client of the
types of certificate accepted by the server and
Structure of this message:
For consistency with draft-ietf-tls-ecc-01.txt, the TLS
CertificateRequest message is extended as follows:
enum { nss_sign (8), nss_rsa (9), (255)
} ClientCertificateType;
nss_sign
Singer INTERNET DRAFT - Expires January 2002 [Page 7]
NTRU Cipher Suites for TLS July 2001
The server requests a client certificate that contains an NSS
key and is signed by an NSS signature.
rsa_nss
The server requests a client certificate that contains an NSS
key and is signed by an RSA signature.
4.3 Client Certificate
When this message will be sent:
If the server has requested a client certificate and the client
wishes to send a certificate to the server, the client MAY send
a Client Certificate message. This message, if sent, SHALL be
the first message in the Client Response.
Meaning of this message:
The certificate type SHOULD be selected among the certificate
types requested by the server and is generally an X.509v3
certificate. The public key may be of any length. The
certificate is used to authenticate the client to the server.
The certificate profiles are defined by the IETF PKIX working
group [RFC2459]. NSS keys and cryptographic formats are
defined by the CEES [EESS#1]. RSA keys and cryptographic
formats are defined by PKCS #1 [PKCS#1]. When a key usage
extension is present, the digitalSignature bit must be set for
the key to be eligible for signing.
Structure of this message:
opaque ASN.1Cert<1..2^24-1>;
struct {
ASN.1Cert certificate_list<0..2^24-1>;
} Certificate;
certificate_list
This is a sequence of X.509v3 certificates as specified in RFC
2246 [RFC2246] except that the key, signature and parameter
fields for NTRU and NSS are as specified in EESS #1 [EESS#1].
4.4 Client Key Exchange
When this message will be sent:
This message is always sent in the Client Response. It SHALL
immediately follow the client certificate message, if it is
sent. Otherwise, it SHALL be the first message in the Client
Response.
Meaning of this message:
This message contains the NTRU encrypted pre-master secret.
The pre-master secret is used in TLS along with the other data
to calculate the master secret. Depending on the NTRU key
size, the pre-master secret will have different sizes. For the
Singer INTERNET DRAFT - Expires January 2002 [Page 8]
NTRU Cipher Suites for TLS July 2001
table of permitted key sizes and pre-master secret sizes, see
section 2.
Structure of this message:
The structure of the message depends on the selected key
exchange method. The KeyExchangeAlgorithm and
ClientKeyExchange from RFC 2246 [RFC2246] are extended to
include NTRU.
NOTE: The operation public-key-encrypted is defined in RFC 2246
[RFC2246] section 4.7 and specifies that the length is
represented as an opaque vector <0..2^16-1>, where the length
is specified by the encryption algorithm (e.g. NTRU) and key.
enum { ntru } KeyExchangeAlgorithm;
ntru
The KeyExchangeAlgorithm message contains an NTRU public key.
struct {
select (KeyExchangeAlgorithm) {
case ntru: NTRUEncryptedPreMasterSecret;
} exchange_keys;
} ClientKeyExchange
enum { NTRU251 (1), NTRU347 (2), NTRU503 (3), (255)
} NTRUKeyStrength
NTRU251, NTRU347, NTRU503
The number in the NTRU key strength name represents the size of
the NTRU degree N (e.g. NTRU251 has degree N equal to 251).
select (NTRUKeyStrength) {
case NTRU251: opaque random [20];
case NTRU347: opaque random [32];
case NTRU503: opaque random [48];
} PreMasterSecret
random
The random variable is a securely generated random value to be
used as the pre-master secret.
struct {
public-key-encrypted PreMasterSecret pre_master_secret;
} NTRUEncryptedPreMasterSecret;
pre_master_secret
The value of the pre-master secret, which is encrypted with the
NTRU encryption key provided by the server to obtain the
NTRUEncryptedPreMasterSecret.
4.5 Client Certificate Verify
When this message will be sent:
Singer INTERNET DRAFT - Expires January 2002 [Page 9]
NTRU Cipher Suites for TLS July 2001
This message SHALL only be sent following a client certificate
that contains a key that has singing capability (e.g. an NSS
signing key). When sent, it SHALL immediately follow the
client key exchange message in the Client Response.
Meaning of this message:
This message is the digital signature of all of the preceding
handshake messages and is used to provide explicit verification
of a client certificate.
Structure of this message:
The SignatureAlgorithm and Signature from RFC 2246 [RFC2246]
are extended to include NSS.
NOTE: The operation digitally-signed is defined in RFC 2246
[RFC2246] section 4.7 and specifies that the length is
represented as an opaque vector <0..2^16-1>, where the length
is specified by the signature algorithm (e.g. NSS) and key.
enum { nss } SignatureAlgorithm;
select (SignatureAlgorithm) {
case nss: digitally-signed struct {
opaque sha_hash[20];
};
} Signature;
sha_hash
This is the SHA-1 hash of all of the preceding handshake
messages. The SHA-1 algorithm is defined in FIPS 180-1
[FIPS180-1].
struct {
Signature signature;
} CertificateVerify;
5. Cryptographic Computations and Encoding
This section specifies the exact cryptographic computations and
encoding of NTRU and NSS data structures that are needed in order to
implement TLS with the NTRU and NSS cipher suites. When not
explicitly stated, all cryptographic encoding and computations SHALL
be as specified in RFC 2246 [RFC2246]. Note that in particular, RSA
signature verification on certificates SHALL be computed as
specified in RFC 2246 [RFC2246].
The following cryptographic computations and descriptions of their
use in TLS are defined in this section.
Computation Description
NSS Digital Signing The operation of computing the NSS
digital signature on the specified hash
Singer INTERNET DRAFT - Expires January 2002 [Page 10]
NTRU Cipher Suites for TLS July 2001
value and encoding the signature as an
opaque object.
NSS Signature Verification The operation of verifying an NSS
digital signature on a certificate or on
the handshake messages.
NTRU Encryption The operation of computing the NTRU
encryption of the pre-master secret and
encoding the encrypted data as an opaque
object.
NTRU Decryption The operation of decrypting the pre-
master secret.
5.1 NSS Digital Signing
When this operation is performed:
Whenever client authentication is performed, the client
generates an NSS digital signature on all of the preceding
handshake messages and places this signature in the
CertificateVerify message in the Client Response.
NSS digital signatures on certificates are outside of the scope
of TLS, however, it is assumed that the NSS certificate
signatures are performed as specified by the SVSSA signature
scheme as defined in EESS #1 [EESS#1] and encoded in the
certificate according to EESS #1 [EESS#1].
Operation:
For all NSS digital signature operations in this document, the
signature SHALL be performed as specified by the SVSSA
signature scheme as defined in EESS #1 [EESS#1]. The parameter
values SHALL be included in the client certificate and SHALL be
interpreted according to EESS #1 [EESS#1]. For the
ClientVerify message, the input to the signature scheme SHALL
be the concatenation of all of the previous handshake messages
and the hash function for creating the hash of the message
SHALL be SHA-1 [FIPS180-1] and SHALL NOT be MD5.
Encoding:
The structure of NSS signatures, written in TLS as the function
digitally-signed, SHALL be encoded as a type 1 vector as
defined in EESS #1 [EESS#1]. (This is essentially the
polynomial written as a byte string of coefficients ordered
from lowest degree to highest, with each byte representing a
single coefficient.)
5.2 NSS Signature Verification
When this operation is performed:
The client performs NSS signature verification to verify the
server certificate in all NTRU cipher suites. The server
performs NSS signature verification in all client authenticated
handshakes to verify the client certificate and to verify the
ClientVerify message.
Singer INTERNET DRAFT - Expires January 2002 [Page 11]
NTRU Cipher Suites for TLS July 2001
Operation:
For all NSS verification operations in this document, the
verification SHALL be performed as specified by the SVSSA
signature scheme as defined in EESS #1 [EESS#1]. The server
SHALL verify that the parameter values be included in the
client certificate and interpret them according to EESS #1
[EESS#1]. For the ClientVerify message verification, the input
to the verification process SHALL be the concatenation of all
of the previous handshake messages and the hash function for
creating the hash of the message SHALL be SHA-1 [FIPS180-1] and
SHALL NOT be MD5. If all of the above checks pass, the server
SHALL accept the signature as valid, otherwise the server SHALL
reject the signature as invalid.
5.3 NTRU Encryption
When this operation is performed:
The client performs NTRU encryption on the pre-master secret in
all cipher suites defined in this document. The encrypted pre-
master secret is included in the ClientKeyExchange message in
the Client Response.
Operation:
For all NTRU encryption operations in this document, the
encryption SHALL be performed as specified by the SVES
encryption scheme as defined in EESS #1 [EESS#1]. The
parameter values SHALL be included in the server certificate
(or ServerKeyExchange message) and SHALL be interpreted
according to EESS #1 [EESS#1]. For the ClientKeyExchange
message, the input to the encryption scheme SHALL be the pre-
master secret as the leftmost (first) bytes, padded on the
right (end) by any byte string that makes the total length
equal to the input length of the encryption function (e.g. for
NTRU 251, the 20-byte pre-master secret will be padded with 1
byte on the right to obtain a 21-byte input to the encryption
function). The padding SHOULD consist of all '0' bytes.
Encoding:
The structure of NTRU encryptions, written in TLS as the
function public-key-encrypted, SHALL be encoded as a type 1
vector as defined in EESS #1 [EESS#1]. (This is essentially
the polynomial written as a byte string of coefficients ordered
from lowest degree to highest (left to right), with each byte
representing a single coefficient.)
5.4 NTRU Decryption
When this operation is performed:
The server performs NTRU decryption on the encrypted pre-master
secret in all cipher suites defined in this document. The
encrypted pre-master secret is included in the
ClientKeyExchange message in the Client Response.
Operation:
Singer INTERNET DRAFT - Expires January 2002 [Page 12]
NTRU Cipher Suites for TLS July 2001
For all NTRU decryption operations in this document, the
decryption SHALL be performed as specified by the SVES
encryption scheme as defined in EESS #1 [EESS#1]. The server
SHALL use the parameter values that are included in the server
certificate and interpret them according to EESS #1 [EESS#1].
For the decryption of the pre-master secret, the input to the
decryption process SHALL be the encrypted pre-master secret
included in the ClientKeyExchange message. The output of the
NTRU decryption operation SHALL be truncated to obtain the pre-
master secret by taking the leftmost (first) n bytes of the
plaintext, where n is the length of the pre-master secret.
6. Cipher Suites
The table below defines the cipher suites specified in this
document. They are interpreted according to their names in the same
manner as in RFC 2246 [RFC2246]. The key agreement methods
specified in this standard are NTRU_NSS and NTRU_RSA. The cipher
suite numbers are subject to change depending on the numbering
conventions and the numbers that are already used.
CipherSuite TLS_NTRU_NSS_WITH_RC4_128_SHA = { 0x00, 0x61 }
CipherSuite TLS_NTRU_NSS_WITH_3DES_EDE_CBC_SHA = { 0x00, 0x62 }
CipherSuite TLS_NTRU_NSS_WITH_AES_128_CBC_SHA = { 0x00, 0x63 }
CipherSuite TLS_NTRU_NSS_WITH_AES_256_CBC_SHA = { 0x00, 0x64 }
CipherSuite TLS_NTRU_RSA_WITH_RC4_128_SHA = { 0x00, 0x65 }
CipherSuite TLS_NTRU_RSA_WITH_3DES_EDE_CBC_SHA = { 0x00, 0x66 }
CipherSuite TLS_NTRU_RSA_WITH_AES_128_CBC_SHA = { 0x00, 0x67 }
CipherSuite TLS_NTRU_RSA_WITH_AES_256_CBC_SHA = { 0x00, 0x68 }
Ciphers other than AES ciphers and hash algorithms are specified in
RFC 2246 [RFC2246]. AES ciphers are specified in [TLS-AES].
Implementations supporting NTRU cipher suites SHOULD support the
following cipher suite. Implementations MAY support any of the
other cipher suites.
TLS_NTRU_NSS_WITH_AES_128_CBC_SHA
7. Security Considerations
This document is entirely concerned with security mechanisms. It is
based on the TLS specification [RFC 2246], IEEE P1363.1 [P1363.1]
and EESS #1 [EESS#1] and the appropriate security considerations
from those documents apply.
8. Intellectual Property Rights
NTRU Cryptosystems, Inc. has been granted U.S. Patent No. 6,081,597,
which covers aspects of the NTRU public-key encryption scheme, and
has applied for a patent (or patents) that covers the NSS public-key
signature scheme. In addition, NTRU Cryptosystems may have applied
for additional patent coverage on implementation techniques related
Singer INTERNET DRAFT - Expires January 2002 [Page 13]
NTRU Cipher Suites for TLS July 2001
to the use of NTRU or NSS. This and any additional patent
information will be sent to the IETF.
The IETF takes no position regarding the validity or scope of any
intellectual property 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; neither does it represent that it
has made any effort to identify any such rights. Information on the
IETF's procedures with respect to rights in standards-track and
standards-related documentation can be found in BCP-11. Copies of
claims of rights made available for publication 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 Secretariat.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights, which may cover technology that may be required to implement
the techniques in this document. Please address the information to
the IETF Executive Director.
Singer INTERNET DRAFT - Expires January 2002 [Page 14]
NTRU Cipher Suites for TLS July 2001
9. References
[EESS#1] Efficient Embedded Security Standards (EESS) #1:
Implementation Aspects of NTRU and NSS, Draft Version 2, May 18,
2001, Consortium for Efficient Embedded Security Standards,
Available at http://www.ceesstandards.org.
[FIPS180-1] FIPS PUB 180-1, Secure Hash Standard, Federal
Information Processing Standards Publication 180-1, U.S. Department
of Commerce/National Institute of Standards and Technology, National
Technical Information Service, Springfield, Virginia, April 17, 1995
(supersedes FIPS PUB 180). Available at
http://www.itl.nist.gov/div897/pubs/fip180-1.htm.
[P1363.1] IEEE Draft Standard P1363.1 D2: IEEE Standard
Specifications for Public-Key Cryptographic Techniques Based on Hard
Problems over Lattices, Draft 2, May 2001, Available at
http://grouper.ieee.org/groups/1363.
[PKCS#1] RSA Laboratories. RSA Encryption Standard. Version 2.0,
October 1, 1998.
[RFC2026] S. Bradner, "The Internet Standards Process", IETF RFC
2026, October 1996
[RFC2119] S. Bradner, "Key Words for Use in RFCs to Indicate
Requirement Levels", IETF RFC 2119, March 1997
[RFC2246] T. Dierks and C. Allen, "The TLS Protocol - Version 1.0,"
IETF RFC 2246, January 1999
[RFC2459] R. Housley, W. Ford, W. Polk and D. Solo, "Internet X.509
Public Key Infrastructure Certificate and CRL Profile", IETF RFC
2459, January 1999
[TLS-AES] P. Chown, "AES Ciphersuites for TLS", draft-ietf-tls-
ciphersuite-03.txt, January 22, 2001
Authors' Addresses
Ari Singer
NTRU
5 Burlington Woods Phone: 1-781-418-2515
Burlington, MA 01803, USA Email: asinger@ntru.com
Singer INTERNET DRAFT - Expires January 2002 [Page 15]