Esquemas siméticos de cifa Notas paa a UC de Seguaça Ifomática Iveo de 12/13 Pedo Félix (pedofelix em cc.isel.ipl.pt) Istituto Supeio de Egehaia de Lisboa
Sumáio Pimitivas de cifa em bloco Pimitivas iteadas Cifa múltipla Modos de opeação Fomas de paddig P. Félix, 2007 Esquemas siméticos de cifa 2
Pimitivas de cifa em bloco Pimitiva de cifa em bloco Fução E: {0,1} l {0,1} {0,1} tal que k {0,1} l a fução E(k) é uma pemutação Desiga-se po D: {0,1} l {0,1} {0,1} a fução que veifica k {0,1} l e m {0,1} : D(k)(E(k)(m)) = m A dimesão do bloco é (ex. 64 bit, 128 bit) A dimesão da chaves é l (ex. 56 bit, 128 bit, 256 bit) Bloco ( bits) chave (l bits) Bloco ( bits) E D Bloco ( bits) Bloco ( bits) 3
Notas A dimesão do bloco deve se suficietemete elevada paa impossibilita ataques baseados a estatística do texto em clao A dimesão da chave l deve se suficietemete elevada paa impossibilita ataques de pesquisa exaustiva Elemetos costutoes Substituições Tasposições Redes SP (Substitutio-Pemutatio) S S S S P S S S S P... S S S S P 4
Pimitivas iteadas Dada uma fução R: {0,1} {0,1}, pode se ciado um sistema de cifa po composições sucessivas desta fução: E(k) = ( R(k ) o R(k -1 ) o o R(k 1 ) ) Um sistema assim obtido diz-se iteado. A fução R é desigada po fução de oud e cada aplicação da fução costitui um oud Paa cada oud é utilizada uma sub-chave k i deivada da chave k foecida ao sistema A obteção das sub-chaves é desigada po escaloameto de chaves (key schedulig) m Roud 1 Roud 2 Roud R R... R c k 1 k 2 k 5
Cifa múltipla: cifa dupla Resolve a baixa dimesão das chaves a pimitiva DES (l = 56) Pimeia solução: Cifa um bloco usado uma chave e cifa o esultado com outa chave: c = E(k 2 )(E(k 1 )(m)) m = D(k 1 )(D(k 2 )(c)) Se a pimitiva costitui um gupo em elação à composição, etão existe uma chave k 3 tal que c = E(k 2 )(E(k 1 )(m)) = E(k 3 )(m) qualque que seja m Pova-se que a pimitiva DES ão costitui um gupo Espaço de chaves 2 2, o que implica uma pesquisa exaustiva com 2 2 opeações. No etato, um ataque meet-i-the-middle eduz o úmeo de chaves a testa paa 2 +1. 6
Ataque meet-i-the-middle Neste ataque, o advesáio tem dois paes (m 1, c 1 ) e (m 2, c 2 ) tal que c 1 = E(k 2 )E(k 1 )(m 1 )) c 2 = E(k 2 )E(k 1 ) (m 2 )) Paa todo o k possível, o advesáio calcula E(k)(m 1 ) e guada o esultado Paa todo o k possível, o advesáio calcula D(k)(c 1 ) e compaa o esultado com os esultado do poto ateio. Se coicidi com algum, é possível que o pa de chaves obtido seja o pa (k 1, k 2 ) (k 1 - chave usada a cifa, k 2 chave usada a decifa) Se se veifica que c 2 = E(k 2 )(E(k 1 )(m 2 )), ode (k 2, k 1 ) é o pa de chaves ecotado o passo ateio, etão, com bastate pobabilidade, o pa obtido é o pa (k 1, k 2 ) pocuado A pobabilidade pode se aumetada veificado com outos paes clao-cifa (m i, c i ) O ataque utiliza o máximo de 2.2 = 2 +1 cifas. 7
Cifa múltipla: cifa tipla Outa solução: (E-D-E) Opea tês vezes sobe um bloco usado duas chaves: c = E(k 1 )(D(k 2 )(E(k 1 )(m))) As chaves k 1 e k 2 alteam paa evita um ataque meet-i-the-middle. Outa solução: Opea tês vezes sobe um bloco usado tês chaves: c = E(k 3 )(D(k 2 )(E(k 1 )(m))) Noma: FIPS 46-3 e ANSI X9.52 Poquê EDE e ão EEE? Se k 1 = k 2 o modo tiplo tasfoma-se o modo simples. 8
Modos de opeação Poblema: Como efectua a cifa de mesages com dimesão supeio à de um bloco? Cosideações: Padões o texto em clao ão deveão se evidetes o texto cifado A eficiêcia do método usado ão deveá se muito ifeio à eficiêcia da pimitiva de cifa em bloco usada A dimesão do texto cifado deve se apoximadamete igual à dimesão do texto em clao Em algumas aplicações é impotate que a decifa seja capaz de ecupea de eos, adições e emoções de bits ocoidos o texto cifado Acesso aleatóio capacidade de decifa e altea apeas pate do ciptogama 9
Modo Electoic-CodeBook (ECB) m j E D m j k Cifa k Decifa m 1 m 2... m L E(k) E(k) E(k) c 1 c 2... c L D(k) D(k) D(k) m 1 m 2... m L 10
Modo electoic-codebook (ECB) Blocos de texto em clao iguais: Blocos de texto em clao iguais, cifados com a mesma chave, implicam blocos de texto cifado iguais Itedepedêcia a cifa: A cifa é ealizada de foma idepedete de bloco paa bloco Popagação de eos: A ocoêcia de eos um bloco de texto cifado afecta apeas a decifa desse bloco Acesso aleatóio: Pemite acesso aleatóio paa decifa e ecifa de múltiplos de blocos. P. Félix, 2007 Esquemas siméticos de cifa 11
Modo ciphe block chaiig (CBC) C 0 =IV C 0 =IV c j-1 c j-1 m 1 m 2... m L m j... E c j D m j E(k) E(k) E(k) k Cifa k Decifa IV c 1 c 2... c L D(k) D(k) D(k)... m 1 m 2... m L 12
Modo ciphe block chaiig (CBC) Blocos de texto em clao iguais: Sob a mesma chave e sob o mesmo vecto de iiciação, duas mesages iguais implicam ciptogamas iguais Itedepedêcia a cifa: A cifa de um bloco de texto em clao afecta a cifa dos blocos seguites Popagação e ecupeação de eos: A ocoêcia de eos um bloco c j de texto cifado afecta a decifa do pópio bloco e a do bloco seguite c j+1. A decifa do bloco c j+1 teá eos as mesmas posições que c j Obsevações: A eodeação dos blocos de texto cifado afecta a decifa É elativamete fácil maipula um detemiado bloco de texto em clao 13
Modos de opeação em steam Modo Steam Estado I Key steam ks ks i = E(k)(I i ) I c i = m i ks i Ciphe FeedBack (CFB) I i CTR I i = c i-1 Output FeedBack (OFB) I i = ks i-1 Coute (CTR) ks i E OFB CFB I i = f(i i-1 ) Poblema: se ks i = ks j etão m i m j = c i c j m i c i 14
Modo Ciphe feedback (CFB) shift de -bits shift de -bits I 1 =IV I j I 1 =IV I j k E E k m j c j m j Cifa Decifa 15
Modo Ciphe feedback (CFB) Blocos de texto em clao iguais: Sob a mesma chave e sob o mesmo vecto de iiciação, duas mesages iguais implicam ciptogamas iguais Itedepedêcia a cifa: A cifa de um bloco de texto em clao afecta a cifa dos blocos seguites Popagação e ecupeação de eos: A ocoêcia de eos um bloco c j de texto cifado afecta a decifa do pópio bloco e a dos / blocos seguites. O bloco m j esultate da decifa do bloco c j teá eos as mesmas posições que c j Obsevações: A eodeação dos blocos de texto cifado afecta a decifa É elativamete fácil maipula um detemiado bloco de texto em clao 16
Modo Output feedback (OFB) I 1 =IV I j I 1 =IV I j k E E k m j c j m j Cifa Decifa 17
Modo Output feedback (OFB) Blocos de texto em clao iguais: Sob a mesma chave e sob o mesmo vecto de iiciação, duas mesages iguais implicam ciptogamas iguais Popagação e ecupeação de eos: A ocoêcia de eos um bloco de texto cifado c j afecta apeas a decifa desse bloco. O bloco m j esultate da decifa do bloco c j teá eos as mesmas posições que c j Obsevações: É elativamete fácil maipula um detemiado bloco de texto em clao 18
Modo Coute (CTR) I 1 =IV I j I i+1 =I i +1 I i+1 =I i +1 I j k E E k m j c j m j Cifa Decifa 19
Modo Coute (CTR) Blocos de texto em clao iguais: Sob a mesma chave e sob o mesmo vecto de iiciação, duas mesages iguais implicam ciptogamas iguais Popagação e ecupeação de eos: A ocoêcia de eos um bloco de texto cifado c j afecta apeas a decifa desse bloco. O bloco m j esultate da decifa do bloco c j teá eos as mesmas posições que c j Acesso aleatóio: Pemite acesso aleatóio paa decifa e ecifa de bits Obsevações: É elativamete fácil maipula um detemiado bloco de texto em clao 20
Vectoes iiciais Nuca epeti o IV CBC poblema do ECB o pimeio bloco Modos CFB, OFB e CTR epetição do key steam Os IV ão têm de se cofideciais Geação do IV Cotado Poblema: pequea distâcia de hammig Pevisível Poblema: ataques activos (ex. SSH) Aleatóio Pefixa à mesagem Baseado em ouce (umbe used oce) CBC: IV = E k (ouce) CTR: S = ouce i 21
Qual escolhe CBC Muito usado a pática: SSL, IPSEC,... Seguo o modelo CPA (Chose Plaitext Atack) CTR Pouco usado a pática: ão faz pate dos modos de opeação omalizados paa utilização com o DES (FIPS PUB 81) Seguo o modelo CPA Opeação em paalelo Acesso aleatóio Não amplifica eos Não ecessita de paddig Modo de opeação em steam 22
Paddig Seja X o úmeo de bytes a acesceta paa que a dimesão da mesagem seja múltipla da dimesão do bloco PKCS# 5 (CBC-PAD): Acesceta X bytes com o valo X Utilizações PKCS# 7, CMS, SSL ESP-PAD: Acesceta X bytes com os valoes 01 02... X Utilizações: IPSEC SSH-PAD: Acesceta X-1 bytes aleatóios seguido do byte com valo X A seguaça do esquema depede da foma de paddig? Ataque poposto po S. Vaudeay: chose ciphetext attack utilizado o destiatáio como oáculo que ecebe ciptogamas e etoa 1 ou 0 cofome o paddig esteja coecto ou ão. 23