A fixed 1.2 MB/s SFTP ceiling can come from the client’s encryption work, not the network or disks. In a report about the Termphin SSH/SFTP client, developer Mikołaj Badyl traced that rate to the default cipher preference in the app’s pure-Dart dartssh2 path. His one-machine benchmark measured 51.0 MB/s for ChaCha20-Poly1305 versus 1.2 MB/s for AES-256-GCM—a roughly 43× difference in cipher-primitive throughput, not a promise of 43× faster file transfers.
Why would an SFTP transfer stop at 1.2 MB/s?
Badyl reports that Termphin transfers repeatedly landed at 1.2 MB/s across different servers, networks, and file sizes. He investigated the network path, disks at both ends, and SFTP buffering, but those did not explain the stable ceiling. The common factor was the client’s cipher selection: dartssh2 put AES-GCM first by default.
As an Amazon Associate I earn from qualifying purchases.
That kind of unusually steady limit is a clue to look for a local bottleneck. A network problem often varies with conditions; a repeatable plateau can instead reflect a fixed cost in processing or configuration. It is a diagnostic lead, not proof by itself.
Quick wins for a faster PC:
Clear out junk files and repair common Windows errorsFree Scan →Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →What did the cipher benchmark measure?
Badyl says he ran each cipher on the same 32 KB payload 256 times and reported throughput. These are his results from one machine, published in the 2026 article context; they measure cipher primitives, not complete SSH/SFTP transfers.
| Cipher | Reported throughput | How to interpret it |
|---|---|---|
| ChaCha20-Poly1305 | 51.0 MB/s | Authenticated cipher; the relevant comparison with AES-256-GCM. |
| AES-256-GCM | 1.2 MB/s | Authenticated cipher; the roughly 43× comparison is 51.0 divided by 1.2. |
| AES-128-GCM | 1.2 MB/s | Also reported at 1.2 MB/s in this benchmark. |
| AES-128-CTR | 51.7 MB/s | CTR mode result; it does not provide the same built-in authentication as GCM. |
| AES-256-CTR | 37.4 MB/s | CTR mode result; likewise not directly interchangeable with authenticated GCM. |
| Raw ChaCha20 | 74.7 MB/s | Unauthenticated, so it is not a fair like-for-like security comparison with GCM. |
The headline 43× figure compares the two authenticated modes—ChaCha20-Poly1305 at 51.0 MB/s and AES-256-GCM at 1.2 MB/s. It is not a general ranking of ciphers across devices or implementations.
Why was AES-GCM slower in this case?
Badyl attributes the result to the pure-Dart crypto path’s lack of access to CPU AES instructions that can accelerate AES on supported hardware. He says GCM’s authentication component, GHASH, was especially costly in software when the relevant carry-less multiplication instruction was unavailable.
Rank #2
The same benchmark’s AES-CTR results—37.4 to 51.7 MB/s—are an important qualification: the report is not evidence that AES is inherently slow in software. It points specifically to the cost of GCM authentication in the runtime and hardware context he tested. Hardware acceleration availability and software implementations differ, so the reported figures should not be treated as expected performance for another device.
What change did Termphin make?
Badyl says Termphin changed its own handshake cipher preference to put ChaCha20-Poly1305 first, followed by AES-CTR and then AES-GCM. AES-GCM remained available as a fallback if a server offered no other listed option; the described preference list omitted CBC ciphers.
Rank #3
This is an implementation choice reported for Termphin, not universal advice to change every SSH client’s settings. SSH negotiates a cipher supported by both client and server. A preference order can affect which mutually supported option is selected, but a client cannot use an algorithm the server does not offer. The report does not establish the currently shipped dartssh2 version or whether that library’s default order has changed since publication.
How to investigate a similar SFTP speed cap
- Check whether the rate is unusually stable. Compare transfers across file sizes, servers, and network conditions. A recurring, nearly identical ceiling can justify investigating client-side processing as well as the network.
- Rule out the obvious endpoints. Check the connection, source and destination storage, and SFTP buffering. In Badyl’s case, his investigation found those did not explain the fixed limit.
- Inspect negotiated cipher choices. Consult the documentation or diagnostics for your SSH/SFTP client and server. Confirm which algorithms both support and which one is actually selected; do not assume Termphin’s preference order applies to your client.
- Compare like with like. If evaluating performance, compare authenticated modes with authenticated modes and keep runtime, device, and hardware acceleration in view. Raw ChaCha20’s higher figure in this benchmark is not a fair substitute for ChaCha20-Poly1305.
- Measure the full transfer after any change. A primitive benchmark isolates encryption work, while a real SFTP session also incurs protocol framing, round trips, and other overhead. A faster cipher can remove one ceiling without making the entire transfer run at the benchmark’s rate.
What the 43× number does—and does not—mean
The measurement is evidence about one machine and one cipher benchmark, not an independently replicated result or a full-session comparison. Badyl notes that absolute throughput differs on phones and across devices. Because a complete transfer includes protocol overhead, it also cannot exceed the throughput of its underlying cipher in the described setup; the benchmark does not predict an end-to-end rate.
Rank #4
- Wireless File Transfer
- Full functional SSH Server
- SFTP File Transfer
- Protect USB charging port
- Multiple users with multiple paths
The practical lesson is to treat cipher defaults as consequential implementation choices. As Badyl puts it, “A library default encodes an assumption about where the code will run.” And when troubleshooting, “A suspiciously round, suspiciously stable number is worth more attention than a slow one that varies.”
Recommended Free Tools
Quick Recap
Best Value
- Wireless File Transfer
- Full functional SSH Server
- SFTP File Transfer
- Protect USB charging port
- Multiple users with multiple paths
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.




