Differential cryptanalysis is a general form of
cryptanalysis applicable primarily to
block ciphers, but also to
stream ciphers and
cryptographic hash functions. In the broadest sense, it is the study of how differences in information input can affect the resultant difference at the output. In the case of a block cipher, it refers to a set of techniques for tracing differences through the network of transformations, discovering where the
cipher exhibits non-
random behavior, and exploiting such properties to recover the secret
key.