A storage device comprising: a data storage part configured to store deduplicated block data; a temporary data storage part, used as a cache memory, configured to temporarily store block data acquired from the data storage part; a data retrieval control part configured to retrieve, based on a stream identifier giving instructions for data restoration of deduplicated data, a series of target blocks stored by the data storage part, to store the series of target blocks into the temporary data storage part, and to retrieve the series of target blocks from the temporary data storage part; and a temporary data control part configured to delete the block data stored by the temporary data storage part, and a retrieval turn information storage part configured to store retrieval turn information which is information about when specific block data is expected to be retrieved, wherein the data retrieval control part is configured to cause the temporary data storage part to store the series of target blocks acquired from the data storage part on the basis of retrieval turn information acquired from the retrieval turn information storage part; and wherein the temporary data control part is configured to delete block data stored in the temporary data storage part depending on a degree of distance from the target blocks turn to be retrieved on the basis of the retrieval turn information when the temporary data storage part contains more than a predetermined number of blocks, wherein: the data retrieval control part is configured to cause the temporary data storage part to store block data turn information on the basis of the retrieval turn information, the block data turn information being information which associates the block data identifier for identifying the block data with turn information representing a turn to be retrieved of the block data indicated by the block data identifier, the temporary data control part is configured to control the storage state of the block data in the temporary data storage part by using the block data turn information, and the block data identifier contained in the block data turn information is part of a hash value calculated on a basis of a content of the block data indicated by the block data identifier. a data storage part configured to store deduplicated block data; a temporary data storage part, used as a cache memory, configured to temporarily store block data acquired from the data storage part; a data retrieval control part configured to retrieve, based on a stream identifier giving instructions for data restoration of deduplicated data, a series of target blocks stored by the data storage part, to store the series of target blocks into the temporary data storage part, and to retrieve the series of target blocks from the temporary data storage part; and a temporary data control part configured to delete the block data stored by the temporary data storage part, and a retrieval turn information storage part configured to store retrieval turn information which is information about when specific block data is expected to be retrieved, wherein the data retrieval control part is configured to cause the temporary data storage part to store the series of target blocks acquired from the data storage part on the basis of retrieval turn information acquired from the retrieval turn information storage part; and wherein the temporary data control part is configured to delete block data stored in the temporary data storage part depending on a degree of distance from the target blocks turn to be retrieved on the basis of the retrieval turn information when the temporary data storage part contains more than a predetermined number of blocks, wherein: the data retrieval control part is configured to cause the temporary data storage part to store block data turn information on the basis of the retrieval turn information, the block data turn information being information which associates the block data identifier for identifying the block data with turn information representing a turn to be retrieved of the block data indicated by the block data identifier, the temporary data control part is configured to control the storage state of the block data in the temporary data storage part by using the block data turn information, and the block data identifier contained in the block data turn information is part of a hash value calculated on a basis of a content of the block data indicated by the block data identifier. the data retrieval control part is configured to cause the temporary data storage part to store block data turn information on the basis of the retrieval turn information, the block data turn information being information which associates the block data identifier for identifying the block data with turn information representing a turn to be retrieved of the block data indicated by the block data identifier, the temporary data control part is configured to control the storage state of the block data in the temporary data storage part by using the block data turn information, and the block data identifier contained in the block data turn information is part of a hash value calculated on a basis of a content of the block data indicated by the block data identifier.