Feature Proposal: Arithmetic PIN Scrambler
The Problem
When entering your PIN in public, observers can see your keypress pattern and learn your PIN. Hardware wallets need better protection for everyday public use.
The Solution
Add arithmetic PIN scrambling with random per-digit offsets. Each digit shows a random offset number in the corner of the screen. User applies mental math while typing. The physical keypress pattern becomes meaningless to observers.
How it works:
- User sets offset range in settings (e.g., -5 to +5)
- Always active once configured
- Each digit gets unique random offset shown in screen corner
- Wraps around modulo 10
- Example: Real PIN
1234
- Corner shows:
+2 → type 3 → stores 1
- Corner shows:
-1 → type 1 → stores 2
- Corner shows:
+4 → type 7 → stores 3
- Corner shows:
0 → type 4 → stores 4
How It Works
┌─────────────────────────┐
│ +7 │ ← Offset in corner
│ │
│ ● ● ○ ○ ○ ○ │
│ │
│ │
└─────────────────────────┘
Offset displayed in corner, changes per digit. Harder for observers to see small number in corner.
Real-World Example
Random offset (±5 range):
- Real PIN:
1984
- Corner shows:
-2, +3, -5, +8
- User types:
9, 2, 3, 2
- Math:
1-2=-1→9 (wraparound), 9+3=12→2 (wraparound), 8-5=3, 4+8=12→2 (wraparound)
- Observer must see both small corner numbers AND keypresses simultaneously
Security Benefits
- Defeats shoulder surfing - Need to see screen corner + keypad simultaneously
- Defeats video surveillance - Camera must capture small corner numbers clearly
- Defeats thermal imaging - Random keys each time
- Changes every entry - Repeated observation useless
- Corner placement - Harder to observe than centered display
Trade-off:
- Slower entry - Must read offset per digit
Session Toggle
At PIN entry screen, press CONFIRM before first digit to toggle scrambling on/off for current session:
┌─────────────────────────┐
│ │
│ │
│ ● ● ○ ○ ○ ○ │
│ │
│ toggle │
└─────────────────────────┘
- Default behavior set in settings (On or Off)
- Quick toggle for context: at home? turn off for speed. In public? turn on.
- Mode stays for entire session, resets on power cycle
Why Random Offset Only
Constant offset (always +3, for example) is fundamentally weak. Once an attacker observes one physical keypress pattern, they only have ~19 possible offsets to try (-9 to +9). With 3 PIN attempts before lockout, they can brute-force all offsets in just 7 PUK cycles. Random per-digit offsets are actually secure because the attacker must observe all 6 digits with clear screen visibility, and each entry uses completely different offsets.
Settings
Settings → Device → PIN Scrambling
├─ Default Mode: [Off ▼]
│ └─ Off / On
└─ Random Range: [-5 to +5]
└─ Min: -9, Max: +9
Default mode sets initial behavior. Use CONFIRM button at PIN entry to toggle for that session.
Technical Notes
- Arithmetic:
(digit + offset) % 10 with wraparound for negatives
- Example:
9 + 2 = 11 % 10 = 1, 0 - 3 = -3 → 7
- Hardware RNG generates offset per digit
- Display offset in top-right or bottom-right corner (small, less visible)
For Advanced Users
Important notes:
- Quick toggle at PIN entry: press CONFIRM before first digit
- Physical isolation still best practice
- Must read corner number for every digit (slower entry)
- Change PIN if compromised
Best practices:
- Set default based on most common environment
- Toggle when needed: at home? press CONFIRM to disable. In public? press CONFIRM to enable.
- Practice your mental math before using in public
- Suggested range: -5 to +5 (easier math)
User Empowerment Philosophy
"Your device, your choice, your risk assessment."
Users choose their security level:
- Set default mode for most common environment
- Quick toggle at point-of-entry based on current situation
- At home? Fast entry. In public? Press CONFIRM, enable scrambling.
- Session-sticky: decide once, stays active until power cycle.
Hardware wallets should empower users to make informed decisions, not enforce one-size-fits-all policies.
Looking for feedback on this approach!
Feature Proposal: Arithmetic PIN Scrambler
The Problem
When entering your PIN in public, observers can see your keypress pattern and learn your PIN. Hardware wallets need better protection for everyday public use.
The Solution
Add arithmetic PIN scrambling with random per-digit offsets. Each digit shows a random offset number in the corner of the screen. User applies mental math while typing. The physical keypress pattern becomes meaningless to observers.
How it works:
1234+2→ type3→ stores1-1→ type1→ stores2+4→ type7→ stores30→ type4→ stores4How It Works
Offset displayed in corner, changes per digit. Harder for observers to see small number in corner.
Real-World Example
Random offset (±5 range):
1984-2, +3, -5, +89, 2, 3, 21-2=-1→9(wraparound),9+3=12→2(wraparound),8-5=3,4+8=12→2(wraparound)Security Benefits
Trade-off:
Session Toggle
At PIN entry screen, press CONFIRM before first digit to toggle scrambling on/off for current session:
Why Random Offset Only
Constant offset (always +3, for example) is fundamentally weak. Once an attacker observes one physical keypress pattern, they only have ~19 possible offsets to try (-9 to +9). With 3 PIN attempts before lockout, they can brute-force all offsets in just 7 PUK cycles. Random per-digit offsets are actually secure because the attacker must observe all 6 digits with clear screen visibility, and each entry uses completely different offsets.
Settings
Default mode sets initial behavior. Use CONFIRM button at PIN entry to toggle for that session.
Technical Notes
(digit + offset) % 10with wraparound for negatives9 + 2 = 11 % 10 = 1,0 - 3 = -3 → 7For Advanced Users
Important notes:
Best practices:
User Empowerment Philosophy
"Your device, your choice, your risk assessment."
Users choose their security level:
Hardware wallets should empower users to make informed decisions, not enforce one-size-fits-all policies.
Looking for feedback on this approach!