Sunday, August 10, 2014
Compuscientia 2014: Cuarta Edición
Tenemos el agrado de invitar a la comunidad cientifica y empresarial a presentar trabajos para la cuarta edición de CompuScientia. CompuScientia es una revista de la Sociedad de Estudiantes de Ciencia de la Computación (SECC) que tiene por objetivo conectar a nuestros lectores con la realidad de la Computación en el Perú y el mundo.
En el ámbito académico, se presentan oportunidades para hacer estudios de posgrado en varias universidades alrededor del mundo y muchos estudiantes peruanos han compartido y continuarán compartiendo sus experiencias en CompuScientia. De la misma manera, conferencias y eventos nacionales e internacionales relacionados a la computación merecen ser conocidos y difundidos. Trabajos teóricos, prácticos y aplicados en computación realizados por estudiantes de pregrado, posgrado y otros profesionales también tienen cabida en CompuScientia. En CompuScientia, también hay un gran interés por difundir experiencias académicas y logros de estudiantes y profesionales peruanos y latinoamericanos que son ejemplo para las nuevas generaciones. Análisis de noticias acerca de la realidad de la investigación en el Perú y en el mundo son de interés en CompuScientia. Un caso en el Perú, por ejemplo, es el análisis de la ley universitaria recientemente aprobada.
En el ámbito laboral, startups, experiencias laborales en empresas reconocidas a nivel mundial como Facebook, Google, IBM también merecen ser difundidas. CompuScientia también tiene interés en difundir temas relacionados a la computación tales como: productos creados por jóvenes emprendedores, oportunidades para hacer internships, investigaciones en empresas, patentes y noticias relacionadas al enfoque empresarial.
Etiquetas:
compuscientia
Friday, March 07, 2014
Problema em Teoria dos Códigos
Neste post vou analisar o Problema MINIMUM DISTANCE (MD) (conjeturado NP-Completo em [1] e demostrado NP-Completo em [2]) para poder entender porque o problema computacional associado a este problema é NP-Hard
Problema de Decisão MINIMUM DISTANCE (MD)
Instancia : Uma matriz binária H^{m\times n} e um w > 0.
Pregunta: Existe algum vector x\in \mathbb{F}_2^n com peso de Hamming \leq w tal que Hx=0?
Problema de Computación COMPUTATIONAL MINIMUM DISTANCE (CMD)
Instancia : Uma matriz binária H^{m\times n} e um w>0.
Pregunta: Computar o vector x\in \mathbb{F}_2^n, com peso minimo, do código C associado a H.
Veja que este é um problema de decisão porque as resposta possíveis são SIM ou NÃO. Que é NP-Completo esta demostrado em [2]. Que MD seja NP-Completo implica, neste caso, em que COMPUTING MINIMUM DISTANCE (CMD) é NP-Hard. Para demonstrar isto vamos a usar a definição informal que nos da o wikipedia.
Um problema H é NP-difícil se e somente se (sse) existe um problema NP-completo L que é Turing-redutível em tempo polinomial para H. Em outras palavras, $L pode ser resolvido em tempo polinomial por umaMáquina de Turing Não Determinística com um oráculo para H. Informalmente, podemos pensar em um algoritmo que pode chamar tal Máquina de Turing Não-Determinística como uma sub-rotina para resolver H, e resolver L em tempo polinomial, se a chamada da sub-rotina leva apenas um passo para computar.
Então podemos usar como oraculo um algoritmo que resolve CMD para resolver em tempo polinomial, numa máquina de Turing Não Determinista, o problema MD. Para isto basta só comparar se o w do problema MD é maior ou menor que o resultado retornado pelo oráculo. Se o w fosse maior que o valor retornado pelo oraculo então a resposta do problema MD é SIM. Isto porque se fosse possível calcular a distancia minima do código, digamos d, então para qualquer w\leq d a resposta é SIM. Se o w fosse menor que o valor retornado pelo oraculo então a resposta do problema MD é NÃO dado que não pode existir x com peso menor que d.
Referências
[1] Berlekamp, Elwyn R. and McEliece, Robert J. and van Tilborg, Henk C. A. (1978) On the inherent intractability of certain coding problems. IEEE Transactions on Information Theory, 24 (3). pp. 384-386. ISSN 0018-9448.
[2] The intractability of computing the minimum distance of a code - Vardy - 1997
Tuesday, February 04, 2014
Transformação Afim na Criptografia
Uma transformação afim é uma transformação entre dois espaços afins A e B. Essa transformação, ou mapeamento, consiste numa transformação lineal em A somado de um vetor b \in B. Ou seja:
S(x)=Tx + b.
No campo da criptografia post-quântica as transformações afins são usadas para ocultar a chave pública dos sistemas de cifração baseados em multivariados.
Para os envolvidos na área é de importância saber lidar com as diferentes representações de uma transformação afim. Neste post apresentarei essas representações e mostrarei como converter uma para a outra. Seja \mathbb{F} um corpo finito com q elementos e \mathbb{E} uma extensão de grau n do corpo \mathbb{F}. Seja S:\mathbb{F}^n\rightarrow \mathbb{F}^n uma transformação afim.
Definição 1: Seja 0\leq i < n e A,B_i \in \mathbb{E}. Então nós chamamos o polinômio S(X)=\sum_{i=0}^{n-1}B_i X^{{q}^i}+A a representação de uma só variável da transformação afim S.
Definição 2: Seja M_S \in \mathbb{F}^{n\times n} uma matriz e v_s \in \mathbb{F}^n um vetor. Então nos chamamos S(x):=M_Sx+v_s, a representação matricial da transformação afim S .
Definição 3: Seja o espaço vetorial \mathbb{F}^n. Então nós chamamos \phi:\mathbb{E}\rightarrow \mathbb{F}^n com \phi(a):=b e b_i=a_{i-1} de bijeção canônica.
Teorema: Uma transformação afim, com v=0 na representação de uma só variável pode ser transformada eficientemente na sua representação matricial.
Prova: Definamos e_i \in \mathbb{F}^n com 1\leq i \leq n, com um 1 no seu i-th coeficiente e zero no restante. Vamos a mostrar que a coluna k dessa matriz é dada pela seguinte fórmula: M_k=\phi(S(\phi^{-1}(e_k))). Vamos a definir P(X):=\sum_{i=0}^{n-1}B_i X^{{q}^i}. Da álgebra conhecemos que o corpo \mathbb{F}^n é também um espaço vetorial sobre o corpo \mathbb{F}. Esse espaço vetorial tem a base V=\{t^0, t^1, t^2,\ldots,t^{{n-1}}\}. Vamos a representar os coeficiente de P(X) como B_i =\sum_{j=0}^{n-1}b_{ij} t^j e a variável X=\sum_{k=0}^{n-1}X_{k}t^k. Substituindo esses valores em P(X) temos P(X) = \sum_{i=0}^{n-1}\sum_{j=0}^{n-1}b_{ij} t^j(\sum_{k=0}^{n-1}X_{k}t^k)^{{q}^i},
Usando o teorema binomial e reduzindo temos
P(X) = \sum_{i=0}^{n-1}\sum_{j=0}^{n-1}b_{ij} \sum_{k=0}^{n-1}X_{k}t^{j+k{{q}^i}},
Escrevendo t^{j+k{{q}^i}} usando a base V temos t^{j+k{{q}^i}} = \sum_{m=0}^{n-1}c_{ijkm}t^m. Por tanto:
P(X) = \sum_{i=0}^{n-1}\sum_{j=0}^{n-1}b_{ij} \sum_{k=0}^{n-1}X_{k} \sum_{m=0}^{n-1}c_{ijkm}t^m
P(X) = \sum_{m=0}^{n-1}\underline{\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}b_{ij} \sum_{k=0}^{n-1}X_{k}c_{ijkm}}_{E}t^m
Por outro lado, escrevendo \phi(S(\phi^{-1}(e_k))) usando a base V temos que esta é igual a: \phi(S(\phi^{-1}(e_k)))=(\sum_{i,j}^{n-1}b_{i,j}c_{ijk0}, \cdots, \sum_{i,j}^{n-1}b_{i,j}c_{ijk(n-1)}). Por fim, veja que E_m = (\phi(S(\phi^{-1}(e_1)))[m],\cdots,\phi(S(\phi^{-1}(e_{n-1})))[m])^{T}*(X_1,\cdots, X_{n-1}).
No caso de transformação afim com v \neq 0 então se tem que v:=M_k=\phi(S(\phi^{-1}(0))) e as colunas de M são M_k=\phi(S(\phi^{-1}(e_k)))-v.
Para os envolvidos na área é de importância saber lidar com as diferentes representações de uma transformação afim. Neste post apresentarei essas representações e mostrarei como converter uma para a outra. Seja \mathbb{F} um corpo finito com q elementos e \mathbb{E} uma extensão de grau n do corpo \mathbb{F}. Seja S:\mathbb{F}^n\rightarrow \mathbb{F}^n uma transformação afim.
Definição 1: Seja 0\leq i < n e A,B_i \in \mathbb{E}. Então nós chamamos o polinômio S(X)=\sum_{i=0}^{n-1}B_i X^{{q}^i}+A a representação de uma só variável da transformação afim S.
Definição 2: Seja M_S \in \mathbb{F}^{n\times n} uma matriz e v_s \in \mathbb{F}^n um vetor. Então nos chamamos S(x):=M_Sx+v_s, a representação matricial da transformação afim S .
Definição 3: Seja o espaço vetorial \mathbb{F}^n. Então nós chamamos \phi:\mathbb{E}\rightarrow \mathbb{F}^n com \phi(a):=b e b_i=a_{i-1} de bijeção canônica.
Teorema: Uma transformação afim, com v=0 na representação de uma só variável pode ser transformada eficientemente na sua representação matricial.
Prova: Definamos e_i \in \mathbb{F}^n com 1\leq i \leq n, com um 1 no seu i-th coeficiente e zero no restante. Vamos a mostrar que a coluna k dessa matriz é dada pela seguinte fórmula: M_k=\phi(S(\phi^{-1}(e_k))). Vamos a definir P(X):=\sum_{i=0}^{n-1}B_i X^{{q}^i}. Da álgebra conhecemos que o corpo \mathbb{F}^n é também um espaço vetorial sobre o corpo \mathbb{F}. Esse espaço vetorial tem a base V=\{t^0, t^1, t^2,\ldots,t^{{n-1}}\}. Vamos a representar os coeficiente de P(X) como B_i =\sum_{j=0}^{n-1}b_{ij} t^j e a variável X=\sum_{k=0}^{n-1}X_{k}t^k. Substituindo esses valores em P(X) temos P(X) = \sum_{i=0}^{n-1}\sum_{j=0}^{n-1}b_{ij} t^j(\sum_{k=0}^{n-1}X_{k}t^k)^{{q}^i},
Usando o teorema binomial e reduzindo temos
P(X) = \sum_{i=0}^{n-1}\sum_{j=0}^{n-1}b_{ij} \sum_{k=0}^{n-1}X_{k}t^{j+k{{q}^i}},
Escrevendo t^{j+k{{q}^i}} usando a base V temos t^{j+k{{q}^i}} = \sum_{m=0}^{n-1}c_{ijkm}t^m. Por tanto:
P(X) = \sum_{i=0}^{n-1}\sum_{j=0}^{n-1}b_{ij} \sum_{k=0}^{n-1}X_{k} \sum_{m=0}^{n-1}c_{ijkm}t^m
P(X) = \sum_{m=0}^{n-1}\underline{\sum_{i=0}^{n-1}\sum_{j=0}^{n-1}b_{ij} \sum_{k=0}^{n-1}X_{k}c_{ijkm}}_{E}t^m
Por outro lado, escrevendo \phi(S(\phi^{-1}(e_k))) usando a base V temos que esta é igual a: \phi(S(\phi^{-1}(e_k)))=(\sum_{i,j}^{n-1}b_{i,j}c_{ijk0}, \cdots, \sum_{i,j}^{n-1}b_{i,j}c_{ijk(n-1)}). Por fim, veja que E_m = (\phi(S(\phi^{-1}(e_1)))[m],\cdots,\phi(S(\phi^{-1}(e_{n-1})))[m])^{T}*(X_1,\cdots, X_{n-1}).
No caso de transformação afim com v \neq 0 então se tem que v:=M_k=\phi(S(\phi^{-1}(0))) e as colunas de M são M_k=\phi(S(\phi^{-1}(e_k)))-v.
Etiquetas:
computación,
criptografía,
mpkc
Subscribe to:
Posts (Atom)