Skip to content

Recommend constant-time decoding of secretKeyMultibase #162

@silverpill

Description

@silverpill

Section 2.2.2 Multikey requires secret keys to be encoded using the base-58-btc alphabet. Example:

The encoding of an Ed25519 secret key MUST start with the two-byte prefix 0x8026 (the varint expression of 0x1300), followed by the 32-byte secret key data. The resulting 34-byte value MUST then be encoded using the base-58-btc alphabet, according to Section 2.4 Multibase, and then prepended with the base-58-btc Multibase header (z).

However, it is not mentioned that non-constant-time implementations of the encoding/decoding algorithm may lead to a key leakage (side-channel attack). Also, the algorithm specified in section 3.2 Base Decode may be not constant-time, as one of implementers explained in this comment: https://codeberg.org/fediverse/fep/issues/710#issuecomment-8154767

Metadata

Metadata

Assignees

No one assigned

    Labels

    class 2Changes that do not functionally affect interpretation of the document

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions