First of all, I am not very familiar with Ethereum Swarm. But I do know Swarm is a strong competitor for IPFS. There is an argument whether to build more functionality into base-layer blockchains themselves or to build it into protocols that live on top of the blockchain. Apparently, Swarm and IPFS take different strategies as Swarm (the second strategy) runs on the EVM layer while IPFS is at the bottom layer independent of the blockchain technology. One big fallback of IPFS is the lack of incentive mechanism. Today Filecoin is more of a hit compared to IPFS since Filecoin (the first strategy) achieved the incentive mechanism with its own blockchain consensus algorithm that is closely related to Proof of Replication (PoRep) and Proof of Space-time (PoST).
I'll talk more about Storj, Sia, and Filecoin here. Sia is one of the earliest implementations for a Distributed Storage Network (DSN). All personal files to be uploaded at the client end is supposed to be encrypted first since the auditing on data storage, a.k.a, proof of retrievability (PoR), is publicly verifiable. They achieve this via the Merkle tree and probabilistic auditing by exposing the random sampling data block. (You can see why it is important to encrypt the data first)
For Storj, private verification is used. That is, the data owner is supposed to do the auditing job here with pre-generated nonces/salts and the classic Hash(block, nonce/salt). BTW, your password also uses this "add salts" method to minimize the possibility of a brutal-force attack. One problem is fairness handling. What if the data owner and storage provider have a dispute? Storj in its current implementation uses somehow "centralized" bridge servers to resolve this. And also the bridge server plays the role of a private verifier. Another problem is that the number of pre-generated nonces is limited, which restricts the frequency of auditing (PoR).
Now let's focus on the Filecoin (IPFS). The Protocol lab developed IPFS first and now is working on Filecoin mostly. As I have said, Filecoin is basically an "advanced" IPFS version with blockchain incentive mechanism and even the off-chain trading market for file storage. Filecoin uses some very cutting-edge technology closely related to the cryptography. For starters, Filecoin (and IPFS) not only considers the files that can be encrypted. That's correct. Only personal files are assumed to be encrypted correctly. For public data like the blockchain itself, one simply does not have the incentive to encrypt it correctly. Filecoin takes into the problem of encoding different replications of public data into consideration. In other words (encryption is also some kind of encoding, but not suitable for public data), Filecoin solves the problem that the storage provider can collude, outsource or simply do whatever that causes the deduplication of public data and earn more money (IPFS did not solve this). The technology used is called Verifiable Delay function (VDF). Summarizing from a very high level, it simply takes the property of an hour-glass function such that it is simply impossible that the storage provider generates the auditing proof (PoR) on the fly. And they call it Proof of Replication (PoRep) in this case. Notice the underlying PoR within the PoRep algorithm they used, at least in the white paper, is also Merkle-tree based probabilistic auditing, very similar to the one that Sia used. On the basis of PoRep, the Filecoin paper takes one step further to formalize the Proof of Space-time (PoST), which takes in another temporal dimension. Basically, they make use of incrementally verifiable computation, a.k.a, proof-carrying data to recursively and continuously compute the proof within a time period, e.g., 30s, which is also the block generation time as well as the leader election time (similar election mechanism to Snowwhite and Algorand) for Filecoin blockchain. One mature implementation is the ZKSNARK that Zcash uses, although ZK is an optional feature here. Unfortunately, the Protocol lab has not released any performance data yet.