GenerateSymmetricKey

GenerateSymmetricKey[]

randomly generates a SymmetricKey object suitable for use with cryptographic functions.

GenerateSymmetricKey["password"]

generates a SymmetricKey object from the password string given.

GenerateSymmetricKey[opts]

randomly generates a symmetric key using the specified options.

Details and Options

  • GenerateSymmetricKey[] uses a system-specific, high-entropy randomness source.
  • GenerateSymmetricKey has a Method option that specifies the cryptography method to use.
  • The current default setting is "AES256".
  • With Method->"name", default settings for the specified method are used.
  • Particular settings can be specified using Method->assoc, where the entries in the association assoc are:
  • "Cipher""AES256"cipher to use
    "KeySize"Automaticsize of key in bits
    "InitializationVector"Noneinitialization vector
    "BlockMode""CBC"block chaining mode ("ECB","CBC", "OFB", "CFB")
  • Supported methods, together with default key size and initialization vector size, include:
  • "Blowfish"25664
    "CAST5"25664
    "DES"6464
    "RC4"256
    "IDEA"12864
    "AES128"128128
    "AES192"192128
    "AES256"256128
  • The following ciphers can use any key size that is a multiple of 8:
  • "RC4"
    "Blowfish"
    "CAST5"
  • All ciphers can use the block modes ECB, CBC, CFB, OFB other than RC4, which can only use None.
  • Possible settings for "InitializationVector" include:
  • Automaticgenerate an appropriate initialization vector
    ByteArray[]use an explicitly specified initialization vector
    Nonedo not include any initialization vector
  • With "InitializationVector"->None, Encrypt will generate a new initialization vector whenever it is run. In this case, the vector can be determined only from the EncryptedObject that is produced.

Examples

open allclose all

Basic Examples  (1)

Generate a random symmetric key:

In[1]:=
Click for copyable input
Out[1]=

Use the key to encrypt:

In[2]:=
Click for copyable input
Out[2]=
In[3]:=
Click for copyable input
Out[3]=

Scope  (5)

Possible Issues  (1)

See Also

GenerateAsymmetricKeyPair  Encrypt  Decrypt  RandomInteger  FieldMasked

Introduced in 2015
(10.1)