> One-time pads are impractical. You need a key that's as long as your message. Pre-shared.
Need in a key as long as your message (pre-shared) doesn't mean that OTP is impractical.
Let's imagine a conversation between two users that exchange tweet-sized messages in Latin-1 encoding (i.e. each plain message weighs no more than 140 bytes).
Let's consider we've produced exactly 4 GiB of random key data and distributed it between the two users (on a pendrive or somehow else).
When the message is received, its encrypted length is the same as the raw length, so we just move the key pointer for the message length on each send and reception.
So how many 140-byte messages can be sent with 4 GiB of key data? Math.floor(4 * 1024 * 1024 * 1024 / 140) = 30678337.
So, 4 GiB of pre-shared key data allows us to send over thirty millions of tweet-sized messages for both sides. How in the world is this impractical? Especially at our days when a 16 GiB file is a norm.
And yes, pre-sharing these key data can involve a simple SSC, BSC etc. It might be hard for an attacker to figure out when to stop when he constantly gets a random garbage out of the same-looking random garbage.