← X3DH/
X3DH · Bölüm 02 cryptography / x3dh

2. Ön Bilgiler

2.1. X3DH parametreleri

X3DH kullanan bir uygulama birkaç parametreye karar vermelidir:

Ad Tanım
curve X25519 veya X448
hash 256 veya 512 bitlik bir özet işlevi (örn. SHA-256 veya SHA-512)
info Uygulamayı tanımlayan bir ASCII dizgesi

Örneğin, bir uygulama curve olarak X25519, hash olarak SHA-512 ve info olarak "MyProtocol" seçebilir.

Bir uygulama ayrıca, bir X25519 veya X448 açık anahtarı PK'yi bir bayt dizisine kodlamak için Encode(PK) adlı bir kodlama işlevi tanımlamalıdır. Önerilen kodlama, eğri tipini temsil eden tek baytlık bir sabitin ardından [1]'de belirtildiği gibi u-koordinatının little-endian kodlamasından oluşur.

2.2. Kriptografik gösterim

X3DH aşağıdaki gösterimi kullanacaktır:

2.3. Roller

X3DH protokolü üç taraf içerir: Alice, Bob ve bir sunucu.

Bazı sistemlerde sunucu rolü birden fazla varlık arasında bölünmüş olabilir, ancak basitlik açısından Alice ve Bob için yukarıdaki işlevleri sağlayan tek bir sunucu varsayıyoruz.

2.4. Anahtarlar

X3DH aşağıdaki eliptik eğri açık anahtarlarını kullanır:

Ad Tanım
IK_A Alice'in kimlik anahtarı
EK_A Alice'in geçici anahtarı
IK_B Bob'un kimlik anahtarı
SPK_B Bob'un imzalı ön anahtarı
OPK_B Bob'un tek kullanımlık ön anahtarı

Tüm açık anahtarların karşılık gelen bir özel anahtarı vardır, ancak açıklamayı basitleştirmek için açık anahtarlara odaklanacağız.

Bir X3DH protokol çalıştırması içinde kullanılan açık anahtarların tümü ya X25519 biçiminde olmalı ya da curve parametresine bağlı olarak tümü X448 biçiminde olmalıdır [1].

Her tarafın uzun ömürlü bir kimlik açık anahtarı vardır (Alice için IK_A, Bob için IK_B).

Bob'un ayrıca, düzenli aralıklarla değiştireceği imzalı bir ön anahtarı SPK_B ve her biri tek bir X3DH protokol çalıştırmasında kullanılan bir tek kullanımlık ön anahtar kümesi OPK_B vardır. ("Ön anahtarlar" bu adı alır çünkü esasen Bob'un, Alice protokol çalıştırmasını başlatmadan önce sunucuya yayımladığı protokol iletileridir.)

Her protokol çalıştırması sırasında Alice, açık anahtarı EK_A olan yeni bir geçici anahtar çifti üretir.

Başarılı bir protokol çalıştırmasından sonra Alice ve Bob 32 baytlık gizli bir anahtar SK paylaşacaktır. Bu anahtar, Bölüm 4'teki güvenlik değerlendirmelerine tabi olarak, X3DH sonrası güvenli iletişim protokollerinden birinde kullanılabilir.