> What is so special about chacha20 stream cipher along with poly1305 for message authentication codes? There is nothing special about the combination. It's just a combination of two constructions (ChaCha20 for the stream cipher, Poly1305 for MAC) that are designed with similar goals in mind: * Easy to write a correct implementation in software * Optimized for performance of software implementations running on general purpose software. This is in contrast to many cryptographic primitives which are optimized for hardware implementation, but are suboptimal in software. This is mainly due to the use of integer addition operations in ChaCha20. * 128-bit security level. Furthermore the key derivation is informally standardized, allowing using a single key for both encryption and authentication. Having real-world constructions (for example OpenSSH) use this constructions gives confidence about security. > What does it mean that one can efficiently seek to any position in the key stream in constant time? Assume you're given n GiB of incoming encrypted data, but for some reason you're only interested in the last 1 MiB. With typical stream ciphers, you'd need to do O(n) work to "skip" the first n GiB. ChaCha20 permits decrypting the last MiB with O(1) work - essentially deriving the cipher output for arbitrary position (aligned to a 64 byte boundary at least) with as much work as decoding sequentially.