A method of securely transferring master keying material between a master keying material source and a slave dongle, wherein the slave dongle contains a public key and a private key, wherein the master keying material source is for providing master keying material, and wherein the master keying material is for allowing users of the dongles to securely access encrypted data, wherein the master keying material source is held by a software program installed on a data transfer system, or wherein the master keying material source is held by a firmware program on a dedicated chip in the data transfer system; the method comprising: connecting the slave dongle to the data transfer system that contains the master keying material source; transferring the slave dongle's public key to the master keying material source using the data transfer system; encrypting the master keying material via an encryption process at the master keying material source, with the encryption process incorporating the use of the slave dongle's public key and hence producing encrypted master keying material at the master keying material source; transferring the encrypted master keying material to the slave dongle using the data transfer system; decrypting the encrypted master keying material at the slave dongle; and storing the master keying material at the slave dongle; such that a user of a first slave dongle containing the master keying material can use the master keying material to decrypt data encrypted by a second slave dongle containing the same master keying material, wherein, before the step of transferring the slave dongle's public key to the master keying material source in the data transfer system, the method comprises the step of: unlocking the slave dongle using a slave dongle user authentication system, wherein unlocking the slave dongle requires an input at the slave dongle user authentication system and allows the slave dongle to send and receive data, in the case where the slave dongle is not factory reset. wherein the slave dongle contains a public key and a private key, wherein the master keying material source is for providing master keying material, and wherein the master keying material is for allowing users of the dongles to securely access encrypted data, wherein the master keying material source is held by a software program installed on a data transfer system, or wherein the master keying material source is held by a firmware program on a dedicated chip in the data transfer system; the method comprising: connecting the slave dongle to the data transfer system that contains the master keying material source; transferring the slave dongle's public key to the master keying material source using the data transfer system; encrypting the master keying material via an encryption process at the master keying material source, with the encryption process incorporating the use of the slave dongle's public key and hence producing encrypted master keying material at the master keying material source; transferring the encrypted master keying material to the slave dongle using the data transfer system; decrypting the encrypted master keying material at the slave dongle; and storing the master keying material at the slave dongle; connecting the slave dongle to the data transfer system that contains the master keying material source; transferring the slave dongle's public key to the master keying material source using the data transfer system; encrypting the master keying material via an encryption process at the master keying material source, with the encryption process incorporating the use of the slave dongle's public key and hence producing encrypted master keying material at the master keying material source; transferring the encrypted master keying material to the slave dongle using the data transfer system; decrypting the encrypted master keying material at the slave dongle; and storing the master keying material at the slave dongle; such that a user of a first slave dongle containing the master keying material can use the master keying material to decrypt data encrypted by a second slave dongle containing the same master keying material, wherein, before the step of transferring the slave dongle's public key to the master keying material source in the data transfer system, the method comprises the step of: unlocking the slave dongle using a slave dongle user authentication system, wherein unlocking the slave dongle requires an input at the slave dongle user authentication system and allows the slave dongle to send and receive data, in the case where the slave dongle is not factory reset.