A storage system, comprising: a host; a storage controller configured to receive a first command (CMDa) from the host; and a non-volatile memory device configured to store first data (DATAa) for the first command (CMDa), and wherein the storage controller comprises an encryption/decryption engine configured to perform encryption and decryption operations and to support at least a first cryptography algorithm and a second cryptography algorithm, wherein the first command (CMDa) includes first encryption strength information for the first data (DATAa), wherein the encryption/decryption engine is configured to perform the encryption and decryption operations on the first data (DATAa) using the first cryptography algorithm when the first encryption strength information indicates a weak encryption strength, and the second cryptography algorithm when the first encryption strength information indicates a strong encryption strength, and characterized in that the host includes a first virtual machine (VM 1), the first virtual machine (VM 1) is configured to request supportable cryptography algorithm information from the storage controller, supportable cryptography algorithm information being information indicating cryptography algorithms supported by the encryption/decryption engine, the storage controller is further configured to transmit the supportable cryptography algorithm information to the first virtual machine in response to the request, and the first virtual machine is further configured to: determine the encryption strength for the first data (DATAa) based on the supportable cryptography algorithm information received from the storage controller, generate the first command (CMDa), include the determined encryption strength as the first encryption strength information in the first command (CMDa), and transmit the first command (CMDa) including the first encryption strength information to the storage controller. a host; a storage controller configured to receive a first command (CMDa) from the host; and a non-volatile memory device configured to store first data (DATAa) for the first command (CMDa), and wherein the storage controller comprises an encryption/decryption engine configured to perform encryption and decryption operations and to support at least a first cryptography algorithm and a second cryptography algorithm, wherein the first command (CMDa) includes first encryption strength information for the first data (DATAa), wherein the encryption/decryption engine is configured to perform the encryption and decryption operations on the first data (DATAa) using the first cryptography algorithm when the first encryption strength information indicates a weak encryption strength, and the second cryptography algorithm when the first encryption strength information indicates a strong encryption strength, and the first cryptography algorithm when the first encryption strength information indicates a weak encryption strength, and the second cryptography algorithm when the first encryption strength information indicates a strong encryption strength, and characterized in that the host includes a first virtual machine (VM 1), the first virtual machine (VM 1) is configured to request supportable cryptography algorithm information from the storage controller, supportable cryptography algorithm information being information indicating cryptography algorithms supported by the encryption/decryption engine, the storage controller is further configured to transmit the supportable cryptography algorithm information to the first virtual machine in response to the request, and the first virtual machine is further configured to: determine the encryption strength for the first data (DATAa) based on the supportable cryptography algorithm information received from the storage controller, generate the first command (CMDa), include the determined encryption strength as the first encryption strength information in the first command (CMDa), and transmit the first command (CMDa) including the first encryption strength information to the storage controller. determine the encryption strength for the first data (DATAa) based on the supportable cryptography algorithm information received from the storage controller, generate the first command (CMDa), include the determined encryption strength as the first encryption strength information in the first command (CMDa), and transmit the first command (CMDa) including the first encryption strength information to the storage controller.