Escolar Documentos
Profissional Documentos
Cultura Documentos
Prova - mai02016
Questão 1 (50%)
O algoritmo K64 de chave secreta, definida a seguir, criptografa um bloco de 64 bits após aplicar
rounds (iterações), como no AES. O número de rounds é R.
(Ia) Escrever a função inversa, na pseudo-linguagem usada neste enunciado,
(Ia. l) de apenas um round do K64 e
(l a.2) da transformação final T do K64;
(l b) demonstrar matematicamente, que as suas duas funções inversas do item anterior são
corretas, i.e., que recupera o bloco de entrada original de 64 bits.
Todas as operações, como soma, subtração, logaritmo, etc., são sobre operandos em bytes de 8
bits, resultando um byte, como veremos a seguir. Por exemplo, sendo x e y valores inteiros
positivos armazenados, cada um em um byte, x + y será um valor de 8 bits.
Uma mesma função é aplicada um certo número de rounds R, através de r I, 2, 3,... , R.
Um bloco B de entrada, de 64 bits, é dividido em 8 sub-blocos B 1, E então, R
rounds são aplicados a estes sub-blocos, e depois uma transformação final Té aplicada,
obtendo-se a saída final.
Descrição de um round
Cada round utiliza duas subchaves e K2r, sendo cada uma de 64 bits e geradas da chave
principal K, também de 64 bits, como veremos mais tarde neste enunciado.
ePrimeiro passo
Primeiramente cada sub-bloco BJ é submetido a XOR (ou-exclusivo) ou somado a bytes da
subchave da seguinte forma (sendo , , , , 2r-l, OS8
bytes de K2r-l
= CI,B2 + Pir_l = C2,B3+ ICr_l = = Q,
= C5,B6+ = C6,B7+ =
- Segundo passo
Os 8 bytes C) (j = 1,2, ... 8) resultantes são submetidos a dois tipos de operações:
y = 45Xmod257 = 0 sex = 128,pois 45 128mod257 = 256)
A segunda operação é a inversa da anterior, i.e., log45(45Xmod257) = x. Convenciona-se que:
x = log40' (x = 128 se y = 0, para ser consistentecom a operação anterior)
Por exemplo: y = 453mod 247 = 229, e = 3.
As operações são da seguinte forma:
(45) CI = Dl, log45C2= D2, = D3, (45)c4 = D4,
(45)c5 = D5, = = D7, (45)c8 =
- Terceiro passo
Os 8 blocos DJ de um byte obtidos no Segundo Passo são agora submetidos a operações de soma
e XOR com os bytes da chave 1<2rda seguinte forma (sendo os
8 bytes de K2r,):
= = = E3,D4 + ICr = E4,
+ = = = E7,D8+ = E8
Quarto passo
Finalmente, os 8 bytes Ej obtidos são sumetidos à operação HT2 de 2 entradas ai , a2 (dois bytes)
e duas saídas bl, b2 (dois bytes) definida por:
bl = (2a1+ a-z)mod256
b2 = (ai + a2)mod256 ) -(E.ce)
As operações são da seguinte forma: (28 = 256)
FI = (2El (El +E2)mod256
F3 = (2E3+ = (E3 +
F5 = (2E5 = (E5 +E6)mod256 — C SL
F? = (2E7 = (E7 + E8)mod256
Descrição da transformação final T
Depois de R rounds, os 8 blocos são submetidos a uma transformação final T que é exatamente
igual ao Primeiro Passo descrito acima, só que a subchave utilizada deve ser a última: K2R+l. E o
resultado é a saída final do algoritmo K64.
Descrição da geração das subchaves
A primeira subchave, Kl, é a própria chave principal K de 64 bits. Para r 1 2,3, ...,2R as
subchaves seguintes são geradas a partir de Kl pela fórmula: 10+1 = Kl <<< 3r, onde v <<< t
significa aplicar sobre v um deslocamento circular para a esquerda de t posições de bit.
Questão 2 (50%)
Um protocolo de combinação de uma chave secreta K entre Alice e Beto é como segue, e tem
como premissas os seguintes itens:
l, p é um inteiro primo longo, e Z; possui um elemento primitivo (gerador) g. Ep e g são para
todos os usuários.
2. Alice possui uma chave (SA,TA) : TA = gSA(modp), SA é a chave particular, p, g, TAsão
públicos.
3. Analogamente, chaves (SB, TB) para o usuário Beto.
4. Cada usuário Alice possui um certificado certA = (IdA, TA)), onde SgnAuté a
assinatura da autoridade idônea Aut, verificável publicamente, e IdA é a identidade de Alice.
5. Analogamente, certB = (IdB, TB,SgnAut(IdB,TB)) para Beto.
Alice Ú= r ou = rs Beto
20,T 7, t
H00
31
LHO c
2. Por quê r deve ser aleatório?
3. Por quê e deve ser aleatório?
4. Por quê y 0 deve ser verificado?
5. Demonstrar algebricamente que se Alice de fato conhece s, então a igualdade
g/ = anf mod n é verdadeirano Protocolo de identificação considerando-
se parâmetros gerais.
6. Se uma falsa Alice conseguisseadivinhar o valor de e correto antes de ser
enviado pelo Beto, mostrar como ela poderia personificar a Alice verdadeira
perante Beto. Qual seria a probabilidade de}falsa Alice obter sucesso desta
forma? Justifique.
7. Quais problemas computacionais difíceis justificarn a inviabilidade prática
de uma falsa Alice personificara verdadeira? Ou seja, em cada passo do
protocolo, dar o nome e definir o problema computacionalmente difícil que
protege a chave s ou algum outro parâmetro crítico para a segurança contra
personificação.
Questão 2 (50%)
Os algoritmos para Alice assinar um inteiro x G e verificar se uma assinatura
é verdadeira são como segue. Os parâmetros' são:
2
Z. Calcular y =
gk modp.
3. Calcular z = (m
— mod(p —1).
4. (y, z) é a assinatura,
que é anexada a x.
Algoritmo de Verificação de uma assinatura (y,z) sobrex. O algoritmode
verificação de uma assinatura é como segue:
1. Se y não satisfizer 1 y (p—i), então a assinatura é incorreta, e rejeitá-la.
2. se = gr modp, então a assinatura é aceita comocorreta.
3. Senão, a assinatura é incorreta. e rejeitá-la.
Esta questão consiste em: