Paper 2026/2300
DuraShare: BIP39-native secret sharing with full manual fallback
Abstract
BIP39 is a Bitcoin standard that turns a wallet's random seed of size between 128 and 256 bits into a human-readable sequence of 12 to 24 words, taken from a fixed 2048-word list. Each word corresponds to an index in that list. DuraShare allows the holder of this sequence to split it among $n$ Sharekeepers, each of whom receives one share. Any subset of $k$ Sharekeepers can combine their shares and reconstruct the original sequence, whereas $k-1$ colluding Sharekeepers obtain no (Shannon) information. For everyday convenience we adopt a software-assisted model, while ensuring that a full manual fallback remains feasible for recovery, requiring nothing beyond paper, a calculator, and specific instructions. This matters because Sharekeepers may be family members or lawyers unfamiliar with crypto-technology, called upon only decades later, when no specific vendor, software, or hardware can be assumed to still exist. DuraShare combines three existing, well-established cryptographic techniques: (1) Shamir Secret Sharing over $\mathbb{F}_{2053}$, the smallest prime larger than 2048; (2) 2D error detection, applying row and column checksums to each share to protect the data against transcription errors and physical damage; and (3) a simple affine inner-product MAC over $\mathbb{F}_{2053}$ to authenticate each share, preventing a Sharekeeper from tampering without being detected.
Note: First version
Metadata
- Available format(s)
-
PDF
- Category
- Applications
- Publication info
- Preprint.
- Keywords
- BIP39Shamir secret sharingmanual key backupcrypto-wallet
- Contact author(s)
-
jvdg @ dcc ufmg br
renato lopez @ grifortis com - History
- 2026-10-04: approved
- 2026-10-01: received
- See all versions
- Short URL
- https://ia.cr/2026/2300
- License
-
CC BY
BibTeX
@misc{cryptoeprint:2026/2300,
author = {Jeroen van de Graaf and Renato Schiavinato Lopez},
title = {{DuraShare}: {BIP39}-native secret sharing with full manual fallback},
howpublished = {Cryptology {ePrint} Archive, Paper 2026/2300},
year = {2026},
url = {https://eprint.iacr.org/2026/2300}
}