One document matched: draft-urien-tls-dh-tripartite-00.txt
TLS Working Group Pascal Urien
Internet Draft Telecom ParisTech
Intended status: Experimental July 2010
Expires: January, 2011
TLS Tripartite Diffie-Hellman Key Exchange
draft-urien-tls-dh-tripartite-00
Abstract
Most of privacy exchanges over the Internet rely on the TLS protocol.
According to this protocol two entities the client and the server
computes a master secret from which are deduced cryptographic keys
used for data privacy and security. Digital transactions may deal
with critical information (payments ...) that need to be recorded for
traceability issues or for legal requirements. However messages are
secured by the TLS protocol, so it is not possible for a third party
that logs packets to perform decryption operations upon legitimate
requests.
The goal of this draft is to support a Trusted Third Party (TTP) that
could recover the protected information when needed. The proposed
protocol uses the Tripartite Diffie-Hellman (tdh) algorithm based on
bilinear pairings over elliptic curves.
Requirements Language
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].
Status of this Memo
This Internet-Draft is submitted in full conformance with the
provisions of BCP 78 and BCP 79.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF). Note that other groups may also distribute working
documents as Internet-Drafts. The list of current Internet-Drafts is
at http://datatracker.ietf.org/drafts/current/.
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."
This Internet-Draft will expire on January 2011.
Urien Expires January 2011 [Page 1]
TLS tripartite Diffie-Hellman Key Exchange June 2010
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document.
Urien Expires January 2011 [Page 2]
TLS tripartite Diffie-Hellman Key Exchange June 2010
Table of Contents
Abstract........................................................... 1
Requirements Language.............................................. 1
Status of this Memo................................................ 1
Copyright Notice................................................... 2
Table of Contents.................................................. 3
1 Overview......................................................... 4
2 About Bilinear Pairing........................................... 5
2.1 Symmetric Bilinear Pairing.................................. 5
2.2 Asymmetric Bilinear Pairing................................. 6
2.3 The Bilinear Diffie-Hellman (BDH) problem................... 6
2.4 Practical properties........................................ 6
2.4.1 Symmetric Pairing .................................... 6
2.4.2 Asymmetric pairing ................................... 7
3. Bilinear pairing operations overview......................... 8
4. Bilinear Pairing Operations details............................. 9
4.1 TLS Extension............................................... 9
4.1.1 Supported Pairing Scheme ............................. 9
4.2 Key Exchange................................................ 9
4.2.1 Trusted-Third-Party list ............................. 9
4.2.1 Server Key Exchange ................................. 10
4.2.2 Client Key Exchange ................................. 10
4.3 PreMasterSecret computing.................................. 10
4.3.1 Hash function for the Weil pairing .................. 11
4.4 CipherSuites............................................... 11
5. Example of pairings............................................ 11
5.1 Symmetric pairing.......................................... 11
6. Security Considerations........................................ 12
7. IANA Considerations............................................ 13
8 References...................................................... 13
8.1 Normative references....................................... 13
8.2 Informative references..................................... 13
Author's Addresses................................................ 13
Urien Expires January 2011 [Page 3]
TLS tripartite Diffie-Hellman Key Exchange June 2010
1 Overview
Most of privacy exchanges over the Internet rely on the TLS protocol.
According to this protocol two entities the client and the server
computes a master secret from which are deduced cryptographic keys
used for data privacy and security.
Digital transactions may deal with critical information (payments
...) that need to be recorded for traceability issues or for legal
requirements.
However messages are secured by the TLS protocol, so it is not
possible to a third party that logs packets to perform decryption
operations upon legitimate requests.
The idea of this proposal is to support a Trusted Third Party (TTP)
that could recover the protected information when needed.
The Tripartite Diffie-Hellman (tdh) idea was initially introduced in
[TDH].
Toady cryptography provides efficient software tools [PBC] computing
bilinear pairing over elliptic curve. The [TLS-ECC] standard already
supports cryptographic operations based on elliptic curves, mainly
for key exchange based on ECDH (Elliptic Curve Diffie Hellman) or the
ECDSA (Elliptic Curve Digital Signature Algorithm) signature.
The Weil pairing for example works with classical elliptic curves;
server and client are equipped with DH public and private keys.
The classical TLS pre-master-secret is computed according to the
relation
pre-master-secret = abP (or g^ab with multiplicative notations)
Where P is a point of an elliptic curve point (a generator) defined
over a Fq field, aP and bP are respectively the server and client DH
public keys, and a,b their private keys.
If the client and the server agree to use a TTP, identified by an
attribute ttp-name and owning a DH public key cP, the pre-master-
secret is computing according to the following relation:
Sclient = e(aP,cP)^b
Sserver = e(bP,cP)^a
Sttp = e(aP,bP)^c,
S = Sserver = Sclient = Sttp = shared-secret
S is an element of F(q^k), with k integer
Urien Expires January 2011 [Page 4]
TLS tripartite Diffie-Hellman Key Exchange June 2010
pre-master-secret = h(S), h a hash function producing p bits
In other words each entity (client, server, TTP) computes a shared
secret S by using its private DH key and the two other public DH
keys.
The master-secret is thereafter produced:
master_secret = PRF(pre-master-secret,
"master secret",
ClientHello.random + ServerHello.random).
The master secret is computed by the client and the server without a
dialog with the TTP. But the TTP will be able to recover the master
secret from the TLS session logs.
Client Server
(ec, P, b, bP) (ec, P, a, aP)
<==aP
bP==>
S= e(aP,cP)^b S= e(bP,cP)^a
master-secret master-secret
! !
!<===Protected Data Exchange===>!
! !
TTP (ec, P, c, cP)
S= e(aP,bP)^c
master-secret
Data Decryption
Figure 1. Illustration of TTP use in a TLS session
2 About Bilinear Pairing
2.1 Symmetric Bilinear Pairing
Z is the set of integer.
r is a prime integer
Let (G1,+) be a cyclic group of order r, (with additive operation +)
Let (G2,*) be a cyclic group of order r, (with multiplicative
operation x).
Let e a non-degenerate bilinear map, G1 x G1 -> G2
A non-degenerate bilinear pairing satisfies the following conditions:
- Bilinear:
for P,Q elements of G1, a,b elements of Z, e(aP,bP)=e(P,Q)^ab
Urien Expires January 2011 [Page 5]
TLS tripartite Diffie-Hellman Key Exchange June 2010
- Non-Degenerate:
e(P,P)#1 is a generator of G2
The Weil pairing [ECC] has been defined for elliptic curve [ECC] over
finite field of prime characteristic p (Fp)
- ECC is an elliptic curve over Fp
- G1 is a subgroup in ECC(Fp), whose order is r
- G2 is a subgroup in F(p^k), k an integer
2.2 Asymmetric Bilinear Pairing
In that case the bilinear map works with two different groups G1,
whose order is r, and G1', where each element has order dividing r.
e is a non-degenerate bilinear map, G1 x G1' -> G2
For P elements of G1, Q element of G1', a,b elements of Z :
e(aP,bQ)=e(P,Q)^ab
The Tate pairing [ECC] has been defined for elliptic curve [ECC] over
finite field of prime characteristic p (Fp).
- ECC is an elliptic curve over Fp
- G1 is a subgroup in ECC(Fp), whose order is r
- G1' is a subgroup in ECC(Fp^k), with k integer (k is the elliptic
curve embedding degree)
- G2 is a subgroup in F(p^k)
2.3 The Bilinear Diffie-Hellman (BDH) problem.
P is a generator of G1
a,b,c are elements of Zr*
BDH: Knowing P, aP, bP, cP the computation of e(P,P)^abc is
'impossible'
Furthermore the classical computational Diffie Hellman (CDH)
assumption is assumed for the group G1.
CDH: Knowing P, aP, bP the computation of abP is 'impossible'
2.4 Practical properties
2.4.1 Symmetric Pairing
We suppose three entities A (server), B (client), C (ttp) equipped
with three pairs of public and private keys, associated with a group
G1 and a generator P.
Urien Expires January 2011 [Page 6]
TLS tripartite Diffie-Hellman Key Exchange June 2010
aP and a, are respectively the public and the private keys for A
bP and b, are respectively the public and the private keys for B
cP and c, are respectively the public and the private keys for C
A shared secret (S) may be computed by these three entities,
according to the following scenario:
- A computes S = e^a(bP,cP) = e(P,P)^abc
- B computes S = e^b(aP,cP) = e(P,P)^abc
- C computes S = e^c(aP,bP) = e(P,P)^abc
In other word each entity computes a shared secret key, deduced from
its private key and the two other public key.
If A is a client, B a server and C a trusted party, all security
properties such as encrypted packets exchanged between client and
server may be recovered by the trusted party.
2.4.2 Asymmetric pairing
We suppose three entities A (server), B (client), C (ttp) equipped
with pairs of public and private keys, associated with the group G1
(generator P) and the group G1' (generator P').
aP, aP' and a, are respectively the public and the private keys for A
bP and b, are respectively the public and the private key for B
cP, cP' and c, are respectively the public and the private keys for C
A shared secret (S) may be computed by these three entities,
according to the following scenario
- A computes S = e^b(bP,cP') = e(P,P')^abc
- B computes S = e^b(aP,cP') = e(P,P')^abc
- C computes S = e^c(aP,bP') = e(P,P')^abc
Urien Expires January 2011 [Page 7]
TLS tripartite Diffie-Hellman Key Exchange June 2010
3. Bilinear pairing operations overview
Client Server
------ ------
ClientHello -------->
extension {pairing-scheme}
extension {elliptic-curves}
extension {ec_point-formats}
ServerHello
extension {pairing-scheme}
extension {elliptic-curves}
extension {ec_point-formats}
Certificate*
ServerKeyExchange*
select (KeyExchangeAlgorithm)
{ case ec_bilinear-pairing:
ServerECDHParams params;
Signature signed_params;
TTP-List ttp-list
} ServerKeyExchange;
CertificateRequest*+
<-------- ServerHelloDone
Certificate*+
ClientKeyExchange
struct {
select (KeyExchangeAlgorithm)
{ case ec_bilinear-pairing:
ClientECDiffieHellmanPublic;
TTP-Name: ttp-name
} exchange-keys;
} ClientKeyExchange;
CertificateVerify*+
[ChangeCipherSpec]
Finished -------->
[ChangeCipherSpec]
<-------- Finished
Application Data <-------> Application Data
Figure 2. Overview of the TLS bilinear pairing operations.
Urien Expires January 2011 [Page 8]
TLS tripartite Diffie-Hellman Key Exchange June 2010
The TLS dialog is illustrated by figure 2. A new extension is used
both by client and server in order to negotiate a pairing scheme. The
TTP is selected thanks attributes exchanged in the ServerKeyExchange
and ClientKeyExchange messages. Elliptic curve and DH parameter are
specified according to [TLS-ECC].
4. Bilinear Pairing Operations details
4.1 TLS Extension
A new TLS extension is defined in this specification: the pairing-
scheme extension.
The general structure of TLS extensions is described in [TLS 1.1],
and this specification adds one new item to ExtensionType.
enum { pairing-scheme(xx)} ExtensionType;
The client negotiates the pairing-scheme via the corresponding
extension inserted in the client hello message
The server selects one of the proposed items and inserts it in the
server hello message.
Two other extensions are imported from [TLS-ECC]:
- elliptic-curves(10),
- ec_point-formats(11);
4.1.1 Supported Pairing Scheme
Supported Pairing Scheme
enum {
Weil-Pairing (1)
} NamedScheme;
4.2 Key Exchange
A new KeyExchange Algorithm is defined: ec-bilinear-pairing
4.2.1 Trusted-Third-Party list
Each trusted third party (TTP) is identified by a name. A DH public
key is implicitly deduced from its identifier.
Urien Expires January 2011 [Page 9]
TLS tripartite Diffie-Hellman Key Exchange June 2010
Structure of this message:
opaque TTP-Name<1..2^24-1>;
struct {
TTP-Name ttp-name-list<0..2^24-1>;
} TTP-List;
4.2.1 Server Key Exchange
The ServerKeyExchange message is extended as follows.
enum { ec-bilinear-pairing } KeyExchangeAlgorithm;
select (KeyExchangeAlgorithm) {
case ec_bilinear-pairing:
ServerECDHParams params;
Signature signed-params;
TTP-List ttp-list
} ServerKeyExchange;
The attributes ServerECDHParams and Signature are imported from [TLS-
ECC]
4.2.2 Client Key Exchange
The ClientKeyExchange message is extended as follows.
struct {
select (KeyExchangeAlgorithm) {
case ec_bilinear-pairing:
ClientECDiffieHellmanPublic;
TTP-Name: ttp-name
} exchange-keys;
} ClientKeyExchange;
The attribute ClientECDiffieHellmanPublic is imported from [TLS-ECC].
4.3 PreMasterSecret computing
aP and bP are respectively the server and the client DH public values
(with additive notations)
cP is the trusted third party (ttp) public value, (with additive
notations).
h is a digest function producing p bytes.
Urien Expires January 2011 [Page 10]
TLS tripartite Diffie-Hellman Key Exchange June 2010
On the server side:
PreMasterSecret = h(e(bP,cP)^a)
On client side:
PreMasterSecret = h(e(aP,cP)^b)
On the ttp side
PreMasterSecret = h(e(aP,bP)^c)
4.3.1 Hash function for the Weil pairing
For the Weil pairing, G2 is a subgroup of Fq^2, if the output of e is
expressed as the tuple (a0,a1) with x and y elements of Fq
h = sha1(a0 || a1), a0 and a1 are values of exactly q bits.
4.4 CipherSuites
To be done.
5. Example of pairings
This example has been computed with the Pairing-Based Cryptography
Library [PBC] [BL].
5.1 Symmetric pairing
The elliptic curve (ECC) is chosen as:
y^2 = x^3 + x, with x, y elements of a Field Fq
q is a prime number, with q = 3 modulus 4
G1 is a subgroup of ECC(Fq)
G2 is a subgroup of Fq^2
There are q+1 points on the ECC curve, i.e. #ECC(Fq) = q+1
r = order of G1 = prime factor of q+1.
h = cofactor = #ECC(Fq) / r
q=8780710799663312522437781984754049815806883199414208211028653399266
475630880222957078625179422662221423155858769582317459277713367317481
324925129998224791.
h=1201601226489114607938882136674053420480295440125131182291961513104
7207289359704531102844802183906537786776
r= 730750818665451621361119245571504901405976559617
Urien Expires January 2011 [Page 11]
TLS tripartite Diffie-Hellman Key Exchange June 2010
Generator P=
764213932795790385166146156484628185710738246136731223594607305863197
148904107335230752866953232919510098156557991388877251113225844051396
9390781514106884,
841053126166803064145349163706237513167951671763744795990943027230354
098248702951019958048685849729494818612964151563063433969126677448023
4634049031935396
a = 321231739573260508064943282038854866624801566274
aP =
301901600464207748384853072909292823401500311348346356764859754747703
064669197258898445749044213480292759568257999990157011471277891932048
3502179821202747,
622130912004388536645426112375868421081814378272661695953772580311048
821974186212677634483766383564352093956376894422864585155448402243584
2060112859040085
b = 591069617759232948334516538341133684003963967541
bP =
489872625336582550697622917901310968712983470168986006826993590244144
534124000070208650497397931419729729097601618783404569928023315742260
1733989063260044,
715768020641988338757762409522925702707172363082968385844449919698450
610626853008028585471746136204506517503675925750751323255279155813951
061482849469617
c = 332790059747456431829511198714114673843901104395
cP =
361673235446634950587227148388584900737947568189969047494313829915613
165227389313929815513580932571550613336307696480151992816947356553291
3077259306029100,
591927063716469042674124332635453987072498361375371305395310139261168
079986151403557597760872949800149313292665777504365718007945299529892
7247712148590792
S= f(aP,bP)^c = f(bP,cP)^a= f(cP,aP)^b =
411874021818983935494518378468671897765968395058497750231537284872046
634607045530820852050427874577949368791925702115715036551400857093954
2202145179250626,
792272713616191570585463230096947246676587164343554480144379956667402
825333387256294430771484207666103108581680992251414596583914923441539
9681428439428268
6. Security Considerations
To be done.
Urien Expires January 2011 [Page 12]
TLS tripartite Diffie-Hellman Key Exchange June 2010
7. IANA Considerations
To be done
8 References
8.1 Normative references
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119, March 1997.
[TLS 1.0] Dierks, T., C. Allen, "The TLS Protocol Version 1.0", RFC
2246, January 1999
[TLS 1.1] Dierks, T., Rescorla, E., "The Transport Layer Security
(TLS) Protocol Version 1.1", RFC 4346, April 2006
[TLS 1.2] Dierks, T., Rescorla, E., "The Transport Layer Security
(TLS) Protocol Version 1.1", draft-ietf-tls-rfc4346-bis-10.txt, March
2008
[TLS-ECC] Blake-Wilson, S., Bolyard, N., Gupta, V., Hawk, C., and B.
Moeller, "Elliptic Curve Cryptography (ECC) Cipher Suites for
Transport Layer Security (TLS)", RFC 4492, May 2006.
8.2 Informative references
[ECC] Joseph H.Silverman, "The Arithmetic of Elliptic Curves", Second
Edition, Springer, 2008
[PBC] http://crypto.stanford.edu/pbc/
[TDH] A.Joux, "A one round protocol for tripartite Diffie-Hellman",
Lecture Notes in Computer Science, Springer, Volume 1838, 2000
[BL] Benn Lynn, "On the implementation of paring-based
cryptosystems", PHD dissertation, Stanford University, 2007
Author's Addresses
Pascal Urien
Telecom ParisTech
37/39 rue Dareau, 75014 Paris, France
Email: Pascal.Urien@telecom-paristech.fr
Urien Expires January 2011 [Page 13]
| PAFTECH AB 2003-2026 | 2026-04-24 03:08:49 |