Для любой верной подписи ECDSA (r, s) проверку проходит и пара (r, n − s): смена знака nonce меняет знак s, а у k·G и −k·G одна и та же координата x. Правило low-S выбирает представителя с s ≤ n/2; подписант нормализует подпись, заменяя s на n − s, если s больше этой границы. Для secp256k1 значение n/2, округлённое вниз, равно 0x7FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF5D576E7357A4501DDFE92F46681B20A0.
Bitcoin Core ретранслирует только подписи low-S начиная с версии 0.11.1 (2015 год) и создаёт такие подписи с версии 0.9.0, как описано в BIP 146; код проверки в libsecp256k1 отклоняет high-S. EIP-2 в Ethereum (Homestead, 2016 год) сделал недействительными транзакции со значением s больше n/2, но предкомпилированный контракт ecrecover по-прежнему принимает значения high-S, поэтому контракты, которые проверяют подписи, должны сами проверять эту границу.
Универсальные средства проверки (OpenSSL, WebCrypto, Java, Go) принимают обе формы, а универсальные средства подписи, например OpenSSL, подписи не нормализуют, поэтому примерно половина созданных ими подписей не проходит проверку low-S, пока их не нормализуют. EdDSA избегает этой проблемы, требуя, чтобы S было меньше порядка группы (RFC 8032, § 5.1.7).