Pour les fins, ce qui est nécessaire est que le flux est "mathématiquement impossible à distinguer de manière uniforme bits aléatoires". "Calcul" signifie qu'il a besoin de ne pas être vraiment au hasard, mais seulement qu'il apparaît ainsi à personne sans accès à Dieu de son propre ordinateur.
Dans la pratique, cela signifie que le système doit d'abord rassembler une séquence de n vraiment de bits aléatoires. n doit être assez large pour contrecarrer la recherche exhaustive, c'est à dire qu'il est impossible d'essayer tous les 2^n combinaisons de n bits. Cet objectif est atteint, en ce qui concerne la technologie d'aujourd'hui, aussi longtemps que n est supérieur à 90-ou-oui, mais les cryptographes juste l'amour des puissances de deux, de sorte qu'il est de coutume d'utiliser n = 128.
Ces n bits aléatoires sont obtenus par la collecte de "phénomènes physiques" qui devrait être imprévisible, autant que la physique sont concernés. Généralement, le timing est utilisé: le CPU a un compteur de cycle qui est mis à jour plusieurs milliards de fois par seconde, et certains événements se produisent avec une inévitable montant de la gigue (les paquets réseau entrants, les mouvements de la souris, clavier...). Le système de code pour ces événements, puis "compresse" en appliquant une fonction de hachage cryptographique sécurisé tels que SHA-256 (sortie est alors tronqué à donner notre n bits). Ce qui importe ici, c'est que l'encodage de la physique des événements a assez d' entropie: grosso modo, que ces événements pourrait avoir collectivement assumé au moins 2^n combinaisons. La fonction de hachage, de par sa définition, devrait faire un bon travail en se concentrant que l'entropie dans un n-chaîne de bits.
Une fois que nous avons n bits, on utilise un GÉNÉRATEUR (Pseudo-Random Number Generator) pour produire autant de bits que nécessaire. Un GÉNÉRATEUR est dit être cryptographique sécurisé si, en supposant qu'il fonctionne sur une assez large inconnu nbits de la clé, sa sortie est mathématiquement impossible à distinguer de manière uniforme de bits aléatoires. Dans les années 90, un choix populaire a été RC4, qui est très simple à mettre en œuvre, et assez rapidement. Cependant, il s'est avéré être mesurables biais, c'est à dire qu'il n'était pas comme indiscernables qu'on l'avait initialement souhaité. Le eSTREAM Projet a consisté en la collecte de nouveaux modèles pour PRNG (en fait des chiffrements de flux, parce que la plupart des chiffrements de flux consiste en un PRNG, dont la sortie est XORed avec les données à chiffrer), les documenter, et de la promotion de l'analyse par les cryptographes. Le eSTREAM Portefeuille contient sept PRNG dessins qui ont été jugés suffisamment sécurisé (c'est à dire ils ont résisté à l'analyse et les cryptographes ont tendance à avoir une bonne compréhension de pourquoi ils ont résisté). Parmi eux, quatre sont "optimisés pour les logiciels". La bonne nouvelle est que, si le nouveau GÉNÉRATEUR semblent être beaucoup plus sécurisé que RC4, ils sont aussi nettement plus rapide (nous parlons de centaines de mégaoctets par seconde, ici). Trois d'entre eux sont "libres de toute utilisation" et le code source est fourni.
À partir d'une conception de point de vue, PRNG réutiliser une grande partie des éléments d'algorithmes de chiffrement par bloc. Les mêmes concepts d'avalanche et de la diffusion de bits dans un grand état interne sont utilisés. Sinon, le GÉNÉRATEUR peut être construit à partir d'un algorithme de chiffrement par bloc: il suffit d'utiliser les nbits de la séquence de clés dans un algorithme de chiffrement par bloc, et de chiffrer les valeurs successives d'un compteur (exprimé en m-séquence de bits, si l'algorithme de chiffrement par bloc utilise les mbits de blocs). Cela produit un flux pseudo-aléatoire de bits qui est mathématiquement impossible à distinguer de hasard, aussi longtemps que l'algorithme de chiffrement par bloc est sûr, et le produit des flux n'est plus que de la m*2^(m/2) bits (pour m = 128, ce qui signifie qu'environ 300 milliards de giga-octets, de sorte que c'est assez grand pour la plupart). Ce genre d'utilisation est connu comme mode compteur (CTR).
Généralement, un algorithme de chiffrement par bloc dans la CTR mode n'est pas aussi rapide qu'un dédié de chiffrement de flux (le point de l'algorithme de chiffrement par flux, c'est que, par renoncer à la flexibilité d'un algorithme de chiffrement par bloc, l'amélioration des performances est prévu). Toutefois, si vous arrive d'avoir l'un des plus récent PROCESSEUR d'Intel avec l' AES-NI d' instructions (qui sont fondamentalement une mise en œuvre AES dans le matériel, l'intégré dans le PROCESSEUR), puis AES avec CTR mode de rendement imbattable vitesse (plusieurs giga-octets par seconde).