Yandex has published a detailed technical account of how Russian audiovisual services are meeting new legal requirements to share user identifiers derived from phone numbers while avoiding a single point of compromise.
Regulatory Background
Under recent legislation, 23 registered audiovisual platforms must transmit an additional user identifier to an authorized research organization. The identifier must be consistent across services for the same normalized phone number so that the same individual can be counted once regardless of device or platform.
Why Simple Hashing Failed
An initial proposal relied on a shared secret key combined with Argon2 or HMAC-SHA256 over normalized numbers. While functionally correct, any leakage of the common key would allow an attacker to reverse all identifiers from every participating service. Yandex assessed this risk as unacceptable given the number of independent companies involved.
OPRF Construction
The chosen solution is based on Oblivious Pseudorandom Function as specified in RFC 9497. Each phone number is first normalized to E.164 format, mapped to an elliptic-curve point via hash-to-curve, and blinded with a fresh random scalar. Two independent third parties, each holding its own secret scalar, successively multiply the blinded point. After unblinding and final hashing, the service obtains a stable identifier without ever learning either secret key.
Operational Properties
- Raw phone numbers never leave the originating service or reach the research organization.
- Compromise of one third party is insufficient for offline dictionary attacks.
- Rate limits and request-volume monitoring deter malicious clients from building full lookup tables.
- Key rotation remains possible without changing identifiers already issued.
The final architecture requires each audiovisual service to interact with exactly two third-party OPRF endpoints before sending the resulting identifier to the research organization.

