-
Neste segmento nós vamos olhar um outro método para conseguir planície escolhida
-
a segurança de texto que é realmente superior à CBC. E este método é chamado randomizado
-
modo de contador. Ao contrário do CBC. Modo de contador Randomized PRF usa um seguro. Não faz
-
precisa de uma cifra de bloco. É o suficiente para o modo de contador para usar apenas um PRF porque
-
nós nunca vamos estar invertendo esta função F. Então, vamos deixar F ser o
-
PRF seguro e atua em blocos de N bytes. Mais uma vez se usarmos AES, N será 128. E
-
a forma como o algoritmo de criptografia funciona em modo contador é que começa por escolher
-
uma IV aleatória, que é de 128 bytes aleatório IV, no caso de AES, e essencialmente o nós
-
início de contagem. A partir deste IV aleatória, assim que você perceber a criptografia primeiro é de IV
-
, em seguida, IV 1 até IV + L. Então, nós gerar esse bloco aleatório. Nós XOR do resultado com o
-
mensagem, e que nos dá o texto cifrado. E, como de costume, você percebe que o
-
IV aqui está incluído junto com o texto cifrado. De modo que, na verdade, o texto cifra é
-
um pouco mais do que o texto original simples. E o ponto, é claro, é que,
-
algoritmo de criptografia escolhe um novo IV para cada mensagem. E assim mesmo se eu encriptar
-
a mesma mensagem duas vezes, eu vou pegar diferentes textos cifrados resultantes. Um
-
coisa a notar que esta modalidade é completamente paralyzable, ao contrário do CBC. CBC
-
foi seqüencial. Em outras palavras, você não pode criptografar bloco # 5 até
-
blocos criptografados # # 1-4, então as empresas de hardware que pode ter vários
-
motores AES trabalhando em paralelo não pode realmente usar os motores da AES quando usar
-
CBC porque CBCS inerentemente seqüencial. Assim, mesmo que você pode ter dois ou três
-
quatro motores da AES, você poderia usar apenas um deles ao fazer a criptografia CBC. Com
-
contador modo, tudo é completamente paralyzable. Se você tem três motores da AES
-
criptografia basicamente vai trabalhar três vezes mais rápido. Então essa é a beleza do contador
-
modo. E o modo de contador também tem um nonce correspondente baseado modo de contador.
-
Quando a IV não é verdadeiramente aleatória, mas sim, é apenas um nonce que poderia
-
ser um contador. E a maneira que você implementar o modo baseado em nonce balcão, é você
-
levaria o bloco de 128 bits que usado em AES. E então você deve dividi-lo em dois.
-
Você usaria a esquerda de 64 bits como o nonce, então a palavra contador contaria a partir de
-
zero a 2 para o 64. E então, que será a parte nonce dele. E, em seguida, uma vez que você
-
especificar o nonce, a ordem inferior, 64 bits, estaria fazendo a contagem no interior
-
da criptografia modos de contador. Ok, então nonce vai para a esquerda, ea
-
contador contador de criptografia modo vai para a direita. E é perfeitamente normal se este
-
nonce é imprevisível. A única restrição é que você criptografar no máximo
-
2 para os 64 blocos usando um nonce particular. O perigo é que você não
-
quer este contador para repor a zero para que, então, você terá dois blocos. Digamos,
-
esse cara, esse cara, e esse cara que são criptografados usando o teclado ao mesmo tempo um.
-
Ou seja um presente e um presente. Então vamos rapidamente indicar o teorema de segurança para um
-
modo casualizado contador. Até agora você deve ser usado para este tipo de teoremas.
-
Basicamente, estamos dado um PRF seguro. O que é acabar com um esquema de criptografia.
-
Vamos chamá-lo E sub CTR, E o modo sub contador, que é semanticamente seguro sob um
-
ataque texto escolhido simples. Ele criptografa as mensagens que são blocos L longos, e
-
produz texto cifrado, que são blocos de L +1 longo porque o IV tem de ser incluído no
-
o texto cifrado. Isto é para o modo de contador casualizado. E os limites de erro
-
são apresentados aqui. É basicamente os mesmos limites, como no caso da CBC
-
criptografia. Como de costume, nós argumentamos que este termo é desprezível porque o F PRF é
-
seguro e gostaríamos de deduzir que, que esse termo é desprezível para que
-
E_CTR é segura. Infelizmente não temos este termo de erro aqui e por isso temos de fazer
-
este termo certo de erro é desprezível. E para isso nós temos que fazer L Q certeza quadrado
-
é menor do que o tamanho de um bloco. E lembre-se, Q é o número de mensagens
-
criptografada com uma chave particular. E L é o comprimento máximo dessas mensagens. Agora
-
interessante no caso de CBC temos Q L quadrado quadrado. Tem de ser inferior a x.
-
que na verdade é pior do que temos para os modos de contador. Em outras palavras, o contador
-
modos pode realmente ser usado para muito mais. Blocos do que poderia CBC. Vamos ver um rápido
-
exemplo disso. Então aqui é, novamente, o erro prazo para contra-nó, e lembre-se
-
Q é novamente o número de mensagens criptografados com uma chave, e L é o comprimento
-
dessas mensagens. E, como antes, assim como no caso da CBC, suponha que queremos que o
-
vantagem adversário de estar no máximo, uma ao longo de 2 a 32. Que, basicamente, exige
-
que este Q-quadrado L, ao longo de X ser inferior a 1 ao longo de 2 a 32. Então, para que a AES
-
acontece é que, se você ligar os valores X é de 2 a 128, 128 blocos de bits. Então Q vezes
-
raiz quadrada de L deve ser inferior a 2 para o 48. Este é basicamente o limite você
-
começar a partir de ligar 2 para o 128 para este ligado aqui. E, como resultado, você pode
-
ver se você está criptografando mensagens que são cada, 2 para os blocos de 32. Então, depois de 2
-
aos 32 essas mensagens que você tem que substituir sua chave secreta de outra forma
-
modo casualizado contador não é mais seguro de CPA. Então isso significa que podemos criptografar uma
-
total de 2 para os 64 blocos de AES usando uma única chave secreta. Lembre-se, para o CBC
-
valor correspondente foi de 2 para os 48 blocos Então, na verdade, porque o modo de contador tem
-
uma parametrização mais segurança na verdade, podemos usar a mesma chave para criptografar mais
-
blocos com modo de contador do que podíamos com CBC. Então, eu queria fazer uma rápida
-
comparação do modo de contador e CBC. E argumenta que em cada aspecto, contador
-
modo é superior a CBC. E isso é verdade porque a criptografia mais moderna
-
esquemas realmente estão começando a migrar para combater modo, e abandonado CBC. Mesmo
-
embora CBC é ainda bastante utilizada. Então, vamos olhar para a comparação. Em primeiro
-
tudo, lembrar que, na verdade CBC teve que usar uma cifra de bloco, porque se você olhar para o
-
circuito descriptografia, o circuito de decodificação realmente funcionou a cifra de bloco em sentido inverso.
-
Foi realmente usando as capacidades de decodificação da cifra de bloco. Enquanto que
-
no modo contador, só usamos um PRF. Nós nunca, nunca use a descriptografia
-
capacidades da cifra de bloco. Nós só usá-lo para a frente, só
-
criptografar com ele. Devido a isso, o modo de contador é efectivamente mais geral e pode
-
primitivas de uso, como Salsa, por exemplo, Salsa20, se você se lembra, como um PRF.
-
Mas não é um PRP. Assim, contra o modo pode Salsa mas CBC não pode. E, em essência,
-
modo contador é mais geral do CBC. Modo de contador, como dissemos, é na verdade
-
paralelo, enquanto CBC é um processo muito sequencial. Dissemos que o modo de contador é mais
-
seguro. Os limites de segurança, os termos de erro são melhores para o modo de contador de
-
são para CBC. E, como resultado, você pode usar uma chave para criptografar blocos mais em
-
modo de contador que você poderia com CBC. A outra questão é, lembre-se no CBC falamos
-
sobre o bloco de preenchimento manequim. Se você tinha uma mensagem que é um múltiplo do bloco
-
comprimento. Na CBC, dissemos que tínhamos que adicionar um bloco de manequim enquanto que no modo de combater este
-
não era necessário. Embora, eu quis mencionar que há uma variação de
-
CBC chamado CBC com azulejos texto cifrado, que realmente evita o problema bloco manequim. Assim
-
para CBC padronizado, nós realmente precisamos de um bloco de manequim. Mas, na verdade há uma
-
modificação CBC que não precisa de um bloco de manequim. Assim como modo de contador.
-
Finalmente, suponha que você está criptografando apenas um fluxo de bytes um mensagens, e usando
-
criptografia nonce com um nonce implícita. Assim, o uso único não é
-
incluído no texto cifrado. Neste caso. Cada mensagem de um único byte teria
-
para ser expandida em um bloco de 16 bytes e então criptografada, eo resultado seria
-
ser um bloco de byte 16. Então se você tem, assim, um fluxo de 100 mensagens de um byte,
-
um cada um separadamente teria de se tornar um bloco de byte 16. E você vai acabar.
-
Com um fluxo de 116 textos de codificação de byte. Então você começa uma expansão 16x no comprimento de
-
o texto cifrado, em comparação com o comprimento do texto simples. No modo de contador, de
-
Naturalmente, este não é um problema. Você apenas criptografar cada byte uma mensagem por
-
XORing com os primeiros bytes do fluxo que é gerado no modo de contador. Assim
-
texto a cada cifra seria apenas um byte, assim como o texto correspondente planície.
-
E assim a expansão nenhuma, usando o modo de contador. Então você vê que, no essencial, todos os
-
modo de balcão único aspecto domina CBC. E é por isso que é realmente o
-
modo recomendado para ser usando hoje. Ok, então isso conclui nossa discussão do escolhido
-
segurança plaintext. Eu queria apenas resumir rapidamente e lembrá-lo que
-
vamos estar usando essas abstrações PRP e PRF de cifras de bloco.
-
Esta é realmente a maneira correta de pensar de cifras de bloco e por isso vamos
-
sempre pensar neles como permutações tanto pseudo ou pseudo-
-
funções. E então eu queria lembrá-lo mais uma vez que, até agora, vimos duas noções de
-
segurança. Ambos só fornecer segurança contra a espionagem. Eles não fornecem
-
segurança contra adulteração com o texto cifrado. Um deles foi usado quando a chave é apenas
-
usada para criptografar uma mensagem única. O outro foi usado quando a chave foi usada
-
para criptografar mensagens múltiplas. E, como dissemos, porque nenhum deles foi projetado para
-
defender contra adulteração, nenhum fornece integridade de dados. E nós vamos
-
para ver isso como um problema real. E, como resultado, na verdade, eu vou dizer na
-
próximo segmento que esses modos realmente deve nunca, nunca ser usado. Você deveria
-
apenas ser usando estes modos para além de um mecanismo de integridade, que é a nossa próxima
-
tópico. Ok, então, até agora temos visto, basicamente, para usar um, a chave de uma vez, você
-
pode usar cifras de fluxo ou você pode usar o modo de contador determinista. Se você é
-
vai usar os momentos-chave que você poderia usar muitas randomize CBC ou randomize modo de contador
-
e nós vamos falar sobre como assegurar a integridade e confidencialidade. Uma vez que
-
cobrir o tema da integridade, que é o nosso próximo módulo.