-
Notifications
You must be signed in to change notification settings - Fork 0
/
ListaIIA012.tex
191 lines (172 loc) · 13.5 KB
/
ListaIIA012.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
\documentclass[10pt,a4paper]{report}
\usepackage[utf8]{inputenc}
\usepackage[portuguese]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
\usepackage{makeidx}
\usepackage{graphicx}
\usepackage{enumerate}
\author{Welson Jr \\ RA: 149802}
\title{Lista de Exercícios II IA012}
\begin{document}
\maketitle
\section*{Exercício 2}
\paragraph{Para saber se uma pessoa tem uma chave secreta K igual à sua, você escolhe uma sequência aleatória de bits A e envia o XOR dela com sua chave. O destinatário recebe a sequência, faz XOR com a chave secreta combinada e devolve o resultado. Se este for igual à sequência aleatória original, então as chaves são iguais. Portanto o teste foi feito sem necessidade de se transmitir nenhuma chave. Mas, existe uma falha no mesmo. Explique qual é.}
\subsection*{R:}
\subparagraph{Embora não haja o envio da chave neste esquema, caso o destinatário venha a conhecer a sequencia original, ele poderá através de simples operações XOR descobrir a chave secreta K do remetente}
\section*{Exercício 4}
\paragraph{ Criptografia e funções hash podem ser usadas para controlar erros na transmissão de uma mensagem. Existe o tipo de controle interno (mensagem e código detetor de erro são concatenados e cifrados) e o externo (mensagem é cifrada antes do código detetor de erros ser calculado e concatenado a ela). Além dos códigos detetores de erros, existem ainda os códigos corretores de erro, os quais não só acusam a ocorrência de algum erro durante a transmissão como também permitem que tais erros sejam corrigidos sem necessidade de uma nova transmissão. Analise a viabilidade de se implantar códigos corretores de erro nos modos interno e externo como descrito acima.}
\subsection*{R:}
\subparagraph{Uma vez que os erros ocorrem durante a transmissão da mensagem, implementar a forma interna impossibilitaria que em caso de corrupção do bloco cifrado o mesmo possa ser decifrado corretamente e o código de correção de erros seja recuperado e utilizado para recuperar a mensagem.}
\subparagraph{Entretanto caso seja implementada a forma externa, o código de correção de erros pode ser utilizado para recuperar o bloco cifrado antes do processo de decifragem, e com isso os erros de transmissão sejam corrigidos e a mensagem recuperada corretamente}
\section*{Exercício 6}
\paragraph{Há basicamente 3 formas de se usar Nonces:}
\subparagraph{Forma 1:}
\begin{enumerate}[(1)]
\item $A \rightarrow B : N_a$
\item $B \rightarrow A : Ek(N_a)$
\end{enumerate}
\subparagraph{Forma 2:}
\begin{enumerate}[(1)]
\item $A \rightarrow B : Ek(N_a)$
\item $B \rightarrow A : N_a$
\end{enumerate}
\subparagraph{Forma 3:}
\begin{enumerate}[(1)]
\item $A \rightarrow B : Ek(N_a)$
\item $B \rightarrow A : Ek\{f(N_a)\}$
\end{enumerate}
\paragraph{Compare e discuta as 3 formas do ponto de vista da eficácia do Nonce em cumprir sua tarefa.}
\subsection*{R:}
\paragraph{Na forma 1}
\subparagraph{O Nonce é enviado em texto plano e cifrado no retorno com uma chave conhecida entre A e B, como não sofre modificações esta abordagem fornece a um possível atacante pares P C oque possibilitaria a criptoanalise.}
\paragraph{Na forma 2}
\subparagraph{O Nonce é enviado cifrado e retorna decifrado, similarmente a forma 1 esta abordagem possibilita o acumulo de pares P C.}
\paragraph{Na forma 3}
\subparagraph{ Esta forma é a que melhor oferece segurança, o envio encriptado do Nonce impossibilita o atacante de conhecer o conteúdo, e no retorno o Nonce esta modificado impossibilitando o acumulo de pares PC}
\paragraph{Observando esses comportamentos é possível concluir que embora todas as formas cumpram o papel de evitar ataques de repetição, as formas 1 e 2 possibilitam ataques de um criptoanalista que venha a monitorar a comunicação.}
\section*{Exercício 8}
\paragraph{ Em assinaturas digitais intermediadas com criptografia assimétrica temos uma codificação tripla na primeira parte do protocolo. Como o mesmo pode ser modificado de modo a eliminar esta tripla codificação?}
\subsection*{R:}
\subparagraph{A assinatura digital por criptografia assimétrica normalmente utiliza uma mensagem no seguinte formato:}
\begin{enumerate}
\item $X \rightarrow A: ID_X || E_{pr_X}(ID_X||E_{pu_Y}(E_{pr_X}(M))) $
\item $A \rightarrow Y: E_{pr_A}(ID_X||E_{pu_Y}(E_{pr_A}(M))||T)$
\end{enumerate}
\subparagraph{Uma vez que a mensagem esta segura em um bloco que só pode ser aberto por Y, X poderia evitar fazer a codificação do bloco todo ao enviar a requisição para a Autoridade, como a mensagem esta assinada com a chave privada de X, Y terá certeza de quem enviou a mensagem, para acrescentar um pouco mais de segurança X também poderia um carimbo de tempo ao bloco cifrado a fim de evitar um possivel ataque de repetição.}
\begin{enumerate}
\item $X \rightarrow A: ID_X||E_{pu_Y}(E_{pr_X}(M||T)) $
\item $A \rightarrow Y: E_{pr_A}(ID_X||E_{pu_Y}(E_{pr_A}(M))||T)$
\end{enumerate}
\section*{Exercício 10}
\paragraph{ Considere o seguinte esquema de assinatura digital intermediada baseada em chave pública.}
\subparagraph{$Ana \rightarrow Autoridade: ID_A || EK_{prA} [ ID_A || EK_{puB} \{ EK_{prA} ( M ) \} ]$ }
\subparagraph{$Autoridade \rightarrow Beto: EK_{prAut} [ ID_A || EK_{puB} \{ EK_{prA} ( M )\} ]$ }
\paragraph{Explique que problema pode ocorrer caso o remetente tenha mais de um par de chaves e um dos pares tenha sido comprometido.}
\subsection*{R:}
\subparagraph{Supondo que Ana tenha mais de um par de chaves, um deles tenha sido comprometido e não exista um mecanismo ou meio de se notificar a Autoridade certificadora sobre esta falha, um atacante poderia iniciar comunicações com Beto através da Autoridade, assumindo a identidade de Ana pelo canal oficial, e Beto não possuiria meios de descobrir a fraude pois ela seria tratada como legitima do ponto de vista da Autoridade e de Beto}
\section*{Exercício 12}
\paragraph{Considere o seguinte esquema de assinatura digital intermediada baseada em chave pública.}
\subparagraph{$Ana \rightarrow Autoridade: ID_A || EK_{prA} [ ID_A || EK_{puB} \{ EK_{prA} ( M ) \} ]$}
\subparagraph{$Autoridade \rightarrow Beto: EK_{prAut} [ ID_A || EK_{puB} \{ EK_{prA} ( M ) \} ]$}
\paragraph{Descreva qual é o tipo de aliança (acordo) entre os envolvidos que poderia surgir a fim de fraudar o sistema. Dica: a fraude se basearia em uma situação tão pouco provável que dificilmente tal aliança teria sucesso.}
\subsection*{R:}
\subparagraph{A autoridade cria um par de chaves (pública e privada) falsas de Beto e divulga a chave pública.
Ana encripta a mensagem com a chave falsa de Beto e envia para a Autoridade que por sua vez decifra a mensagem com a chave publica de Ana. Para ocultar a fraude, a Autoridade decifra a mensagem com a chave privada falsa de Beto, cifra-a utilizando a chave pública verdadeira de Beto e envia a mensagem para ele. Assumindo que a Autoridade não tenha falsificado as chaves (pública e privada) de Ana, ela apenas conseguira ler as mensagens mas não conseguira altera-las para enviar a Bob, pois ela não tem a chave privada de Ana.}
\section*{Exercício 14}
\paragraph{Assinatura Digital Intermediada: explique o que é, por que é necessária e dê um exemplo de utilização, mostrando as informações que são trocadas entre as partes.}
\subsection*{R:}
\subparagraph{O Esquema de assinatura Digital Intermediada é similar ao funcionamento de um tabelião. As partes confiam em uma Autoridade que é responsável por certificar a autenticidade da comunicação, evitando assim disputas. Existem basicamente 3 formas e funcionamento:}
\subparagraph{Com criptografia convencional e o arbitro vê a mensagem. }
\begin{enumerate}
\item $X \rightarrow A: M||EK_{XA}([ID_X||H(M)])$
\item $A \rightarrow Y: E_{YA}(ID_X||M||EK_{XA}(ID_X||H(M))) $
\end{enumerate}
\subparagraph{Com criptografia convencional e o arbitro não vê a mensagem. }
\begin{enumerate}
\item $X \rightarrow A: ID_X||E_{XY}(M)||E_{XA}(ID_X||H(E_{XY}(M)||T))$
\item $A \rightarrow Y: E_{YA}(ID_X||E_{XY}(M))||E_{XA}(ID_X||H(E_{XY}(M))||T)$
\end{enumerate}
\subparagraph{Com criptografia de chave publica e o arbitro não vê a mensagem. }
\begin{enumerate}
\item $X \rightarrow A: ID_X||E_{pr_X}(ID_X||E_{pu_Y}(E_{pr_X}(M)))$
\item $A \rightarrow Y: E_{pr_A}(ID_X||E_{pu_Y}(E_{pr_X}(M))||T)$
\end{enumerate}
\section*{Exercício 16}
\paragraph{Existem várias maneiras de se usar funções de hash para autenticar mensagens. Normalmente estas autenticações envolvem o uso de criptografia, seja da mensagem toda ou somente do código hash. Entretanto, o uso de criptografia não é essencial. Mostre como uma função de hash pode ser usada para autenticar e conferir a autenticidade de uma mensagem M sem recorrer aos recursos da criptografia. Considere a função hash como uma caixa preta cujo conteúdo (implementação) é desconhecido.}
\subsection*{R:}
\subparagraph{Uma técnica simples pode ser empregada:}
\begin{enumerate}[(1)]
\item Primeiro as duas partes combinam entre si uma chave secreta K do mesmo tamanho que o código hash.
\item Então calcula-se o código hash H sobre a mensagem M.
\\ $A: H(M)$
\item Efetua-se uma operação Xor entre a mensagem K e o resultado do calculo do hash e este é o código de autenticação.
\\ $A:MAC = H(M) \oplus K$
\item Concatena-se esse novo código junto com a mensagem M e transmite ao destinatário
\\ $A \rightarrow B: M||MAC$
\item O destinatário recupera o código de autenticação reverte a operação Xor com a chave K, obtendo assim o código hash H
\\ $B:H(M) = MAC \oplus K $
\item Calcula o hash sobre a mensagem e compara com o recebido. Se os dois baterem o destinatário tem certeza de quem enviou a mensagem, pois apenas ele e o emitente possuem a chave K.
\end{enumerate}
\section*{Exercício 18}
\paragraph{O que são chave-mestra e chave de sessão? Quais são as vantagens em utilizá-las?}
\subsection*{R:}
\subparagraph{Chave-mestra é uma chave de longa duração utilizada pelo usurário ou sistema final e o Centro de Distribuição de Chaves.}
\subparagraph{Já a chave de sessão é uma chave obtida temporariamente apenas para uso durante uma conexão logica, sendo descartada posteriormente}
\subparagraph{A vantagem neste esquema esta no fato que a chave mestra é utilizada durante pouquíssimo tempo apenas no inicio da comunicação para se estabelecer uma chave de sessão evitando assim que um possível atacante acumule muitos dados. E o uso posterior de uma chave temporária, a chave de sessão, para a comunicação que é descartada depois do processo, previne que caso um atacante descubra a chave, este possa utilizar a mesma no futuro.}
\section*{Exercício 20}
\paragraph{Explique detalhadamente como funciona o esquema de troca de chaves proposto por Diffie e Helmann em 1976.}
\subsection*{R:}
\subparagraph{Diffie-Hellman propõe o uso de um algoritmo baseado no calculo do logaritmo discreto com base em dois valores públicos $\alpha$ e $p$ para que duas partes negociem uma chave secreta temporária para uma comunicação posterior. Em uma possível negociação entre as partes A e B o algorítimo tem os seguintes passos:}
\begin{enumerate}
\item Existe inicialmente dois números conhecidos publicamente $\alpha$ e $p$. Onde $\alpha < p$ e $\alpha$ é a raiz primitiva no numero primo $p$.
\item Ambas as partes escolhem aleatoriamente um numero X < $p$ para ser suas chaves privadas eo mantem em segredo.
\item Cada parte calcula $Y = \alpha^X \pmod p$ e transmite este numero sua contraparte.
\item A então calcula a chave $K$ com base no valor $Y_B$, $K=(Y_B)^{X_A} \pmod p $
\item B por sua vez faz o mesmo com o valor $Y_A$, $K = (Y_A)^{X_B} \pmod p$
\item com base nas propriedades da aritmética modular A e B chegarão ao mesmo valor para a chave $K$ como pode ser observado a seguir:
\end{enumerate}
\begin{align}
K & = (Y_B)^{X_A} \bmod p \\
& = (\alpha^{X_B} \bmod p)^{X_A} \bmod p \\
& = (\alpha^{X_B})^{X_A} \bmod p & \textrm{pelas regras da aritmética modular} \\
& = \alpha^{X_BX_A} \bmod p \\
& = (\alpha^{X_A} \bmod p)^{X_B} \bmod p \\
& = (Y_A)^{X_B} \bmod p
\end{align}
\section*{Exercício 22}
\paragraph{Sabe-se que é possível criar métodos de criptografia baseados na família de funções matemáticas conhecida como Curvas Elípticas (CE). Mostre os procedimentos para cifrar e decifrar por este algoritmo supondo que fossem usados os pontos da curva $y^2 = x^3 + x + 1 \pmod {23} $ (curva sobre corpo finito primo). Desenvolva um exemplo, mostrando a cifragem e a decifragem da dezena final de seu RA. (Dica: use o algoritmo proposto por Menezes-Vanstone que admite que a mensagem M seja um ponto não pertencente à curva, isto é, ela pode ser formada por um par arbitrário de inteiros.)}
\subsection*{R:}
\subparagraph{Seja:}
\begin{itemize}
\item $y^2 = x^3 + x + 1 \pmod {23}$
\item $Eq(a,b) = Eq_{(23)}(1,1) $
\item $G(13,7)$
\end{itemize}
\subparagraph{Para cifrar:}
\begin{itemize}
\item $M_1 = 0$
\item $M_2 = 2$
\item $n_A = 6$
\item $P_A = n_A \times G = 6 \times (13,7) = (13,16)$
\item $k = 4$
\item $kG = 4 \times (13,7) = (17,20)$
\item $kPu = 4 \times (13,7) = (5,19) = (c_1,c_2) $
\item $x_R = M_1 \times c_1 = (0 \times 5) = 0$
\item $y_R = M_1 \times c_2 = (2 \times 19)(\bmod 23) = 15$
\item $c = \{(17,20),(0,15)\}$
\end{itemize}
\subparagraph{Para decifrar:}
\begin{itemize}
\item $n_U = 3$
\item $P_U = n_U \times G = 3 \times (13,7) = (17,3)$
\item $c = \{(17,20),(0,15)\}$
\item $n_u \times kG = 3 \times (17,20) = (5,19) = (c_1,c_2)$
\item $M_1 = x_R \times (c_1)^{-1} = 0 \times (5)^{-1} = 0$
\item $M_2 = x_R \times (c_2)^{-1} = 15 \times (19)^{-1} = 2$
\item $M_1 = 0$
\item $M_2 = 2$
\end{itemize}
\end{document}