A system for block-level deduplication and key management, the system comprising: one or more processors; and one or more memories having a plurality of instructions stored thereon that, when executed by the one or more processors, causes the system to: identify an encrypted version of a block of a fragmented file, an identification of a requesting entity, and a keyed hash of the block of the fragmented file; determine whether the block has previously been stored by the system based on the keyed hash of the block, the determination comprising a comparison between the keyed hash of the block to keyed hashes of blocks previously stored by the system; store the encrypted version of the block, the keyed hash, and the identification of the requesting entity in response to a determination that the block has not previously been stored by the system; store the identification of the requesting entity in association with the encrypted version of the block as an authorization of the requesting entity to subsequently access the encrypted version of the block; associate the identification of the requesting entity, the encrypted version of the block and the keyed hash with each other in response to the determination that the block has previously been stored by the system; store a list of each keyed hash associated with each block belonging to the fragmented file; determine whether a second requesting entity is authorized to access the encrypted version of the block in response to a request from the second requesting entity for the encrypted block, comprising a determination whether an identification of the second requesting entity is associated with the encrypted version of the block; and provide the encrypted version of the block to the second requesting entity in response to a determination that the second requesting entity is authorized to access the encrypted version of the block. one or more processors; and one or more memories having a plurality of instructions stored thereon that, when executed by the one or more processors, causes the system to: identify an encrypted version of a block of a fragmented file, an identification of a requesting entity, and a keyed hash of the block of the fragmented file; determine whether the block has previously been stored by the system based on the keyed hash of the block, the determination comprising a comparison between the keyed hash of the block to keyed hashes of blocks previously stored by the system; store the encrypted version of the block, the keyed hash, and the identification of the requesting entity in response to a determination that the block has not previously been stored by the system; store the identification of the requesting entity in association with the encrypted version of the block as an authorization of the requesting entity to subsequently access the encrypted version of the block; identify an encrypted version of a block of a fragmented file, an identification of a requesting entity, and a keyed hash of the block of the fragmented file; determine whether the block has previously been stored by the system based on the keyed hash of the block, the determination comprising a comparison between the keyed hash of the block to keyed hashes of blocks previously stored by the system; store the encrypted version of the block, the keyed hash, and the identification of the requesting entity in response to a determination that the block has not previously been stored by the system; store the identification of the requesting entity in association with the encrypted version of the block as an authorization of the requesting entity to subsequently access the encrypted version of the block; associate the identification of the requesting entity, the encrypted version of the block and the keyed hash with each other in response to the determination that the block has previously been stored by the system; store a list of each keyed hash associated with each block belonging to the fragmented file; determine whether a second requesting entity is authorized to access the encrypted version of the block in response to a request from the second requesting entity for the encrypted block, comprising a determination whether an identification of the second requesting entity is associated with the encrypted version of the block; and provide the encrypted version of the block to the second requesting entity in response to a determination that the second requesting entity is authorized to access the encrypted version of the block.