quarta-feira, 31 de março de 2010

Criptografia : números primos

Criptografia : números primos




Os conceitos envolvendo números primos,são peças importantes no projeto dos algoritmos criptográficos.Estes números são inteiros p maior do que 1, que tem como seus únicos divisores ±1 e ±p. O conjunto {2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,71,73,79,83,89,97} são os primos
até 100. A cada intervalo de 100 números até 2000, encontramos em média 12 primos.


Em processos criptográficos é necessário a presença de números primos de valor elevado, e não dispomos de uma fórmula matemática para obte-los. Em função deste fato, é necessário então, após obter um número primo aleatório com muitos dígitos,determinar, se este número é de fato primo.


Um teste muito usado é o método desenvolvido por RABIN-MILLE. Este método pode ser descrito por um algoritmo, o qual esta embasado nos seguintes resultados da teoria dos números :


1) Dado n inteiro positivo impar maior ou igual a 3, então : n - 1 = 2kq, para k inteiro positivo e q impar


2) Se p é primo e a < p é um inteiro positivo, então a2 mod p = 1, se e só se a mod p = 1 ou


a mod p= -1 mod p = p - 1.


3) Considere p > 2 um número primo, temos : p - 1 = 2kq, como k > 0 e q impar.


Se a é qualquer inteiro com intervalo 1 <>

(i) aq mod p = 1

(ii) Um dos números aq , a2q , a4q,...,a2k-1q é congruente a -1 mod p, isto é, existe algum número j
para 1 ≤ j ≤ k, tal que :


a2q mod p = -1 mod p = p - 1



As demonstrações destes resultados passam pelas propriedades da aritmética modular e o teorema de Fermat. Na demonstração deste último resultado que é feita de forma construtiva, permite afirmar que :


Na seqüência : aq mod p , a2q mod p , a4q mod p,...,a2kqmod p, a2k-1q mod p ,uma das seguintes afirmação é verdadeira:


(i) O primeiro número na lista, e conseqüentemente todos os números subseqüentes na lista é igual a 1;


(ii) Algum elemento na seqüência não é igual a 1, mas seu quadrado mod p é igual a 1.


Combinando a propriedade 2), temos que o único número que satisfaz essa condição é p - 1. Assim, nestas condições, a seqüência contém um elemento igual a p - 1.


Resumindo, temos :


Se n é primo, então os primeiros elemento da seqüência aq , a2q , a4q,...,a2k-1q, a2kq é igual a 1, ou algum elemento na seqüência é igual a n -1 . Caso contrário, n é composto, isto é não é primo.


Por outro lado, se a condição for atendida, não necessariamente n é primo( a condição não é suficiente). De fato, escolhendo n = 23 x 89 = 2047, temos :


n -1 = 2 x 1023;


21023 mod 2047 =1,


de forma que, este número satisfaz a condição, mas não é primo.


Vamos, então escrever um algoritmo para decidir se um número inteiro impar n é composto ou com grande possibilidades de ser primo.


O Algoritmo :


1º passo : Entre com o número n impar;


2º passo : Encontre inteiro k e q impar, tal que: p - 1 = 2kq;


3º passo : Selecione um inteiro a , como 1 <>

4º passo : Calcule aq mod n;


5º passo : Se aq mod n = 1, escreva como possibilidade e encerre. Caso contrário vá para o próximo passo;


6º passo : Para j = 0; 1; 2; ...; k-1. Calcule a2jq mod n


7º passo : Construa a seqüência (aq mod n , a2q mod n, a4q mod n,...,a2k-1q mod n)


passo : Se algum termo na seqüência é n -1, isto é, existe j tal que, a2jq mod n = n-1 escreva como possibilidade e encerre. Caso contrário escreva composto e encerre.



Em resumo, o algoritmo, entra com um inteiro impar n e retorna( como saída) o resultado composto, se n não for primo, e com possibilidade se n tem chance de ser primo.


A pergunta natural é, se a saída é com possibilidade e assumirmos que n é primo, como que grau de confiança fazemos esta suposição ?


A resposta :


A literatura mostra que, dado n impar não primo e um inteiro a escolhido aleatoriamente, como 1 <>, ou seja, que deixe de detectar que não é primo é menor do que 1/4. Assim, para t valores diferentes de a forem escolhidos a probabilidade de que, todos passam pelo algoritmo com a mensagem com possibilidade é menor que (1/4)t (independentes). Logo, para um valor suficientemente grande de t, podemos confiar que n é primo se o algoritmo retornar com possibilidade.



Como comentário final, se tomarmos t = 10, a probabilidade de não detectar que não é primo, é menor que (1/4)10 > 10-6, isto é, a chance é 1 em um milhão.




segunda-feira, 15 de fevereiro de 2010

Criptografia : Números Aleatórios

Criptografia : Números Aleatórios


Os números aleatórios desempenham um papel importante na criptografia, principalmente em diversas aplicações em segurança da rede. Diversos algoritmos voltados a segurança de rede baseados na criptografia utilizam números aleatórios.

Números aleatórios uniforme (0,1) são gerados por dispositivos eletrônicos (computadores), geração esta baseada em operações aritméticas. Estes números não são verdadeiramente aleatórios, já que, os mesmos podem ser gerados repetidas vezes. Assim, é mais conveniente denominá-los de números pseudo-aleatórios.

O método mais popular para gerar números aleatórios (0,1) é o congruente multiplicativo, o qual descrevemos a seguir:

Considere a expressão recorrente pn = (apn-1+b) mod m para m = 1,2,3...

Onde a, b, m e o valor inicial p0 são parâmetros. Um número pseudo-aleatório An pode ser gerado de acordo com este método fazendo

An = pn/m ; n = 1,2,3…

O valor inicial p0 é conhecido como semente do método gerador. Note que este processo é de fácil programação pois trata-se de um algoritmo recorrente.

Como ilustração vamos gerar cinco números pseudo-aleatórios, baseado neste método, usando a=8,b=5,m=17 e a semente p0 = 11. Temos pn = (8pn-1+5) mod 17 . Assim,
P1 = (8p0+5) mod 17 = 93 mod 17 = 8

P2 = (8p1+5) mod 17 = 69 mod 17 = 1

P3= (8p2+5) mod 17 = 13 mod 17 = 13

P4= (8p3 +5) mod 17 = 109 mod 17 = 7

P5= (8p4 +5) mod 17 = 61 mod 17 = 10

Prosseguindo, obtemos os números pseudo-aleatórios :

A1 = p1/17 = 8 / 17 = 0,4706

A2= p2/17 = 1/17 = 0,0588

A3= p3/17 = 13/ 17 = 0,7647

A4= p4/17 = 7 / 17 = 0,4118

A5= p5/17 = 10 / 17 = 0,5882

Dependendo da conveniência estes numeros podem ser normalizados para o padrão 10 000 escrevendo a sequência 4706; 588; 7647; 4118; 5882.

A qualidade de uma sequência de números obtida é medida pela sua aleatoriedade (distribuição uniforme e independência), e imprevisibilidade. A escolha dos parâmetros a, b,m e o gerador p0 é crítica na determinação de uma boa sequência.Variações este método para gerar números aleatórios, são encontrados em Laww, A. e Kelton, W.; Simulation Modeling & Analysis; 3a edição McGraw-Hill, New York.

quarta-feira, 10 de fevereiro de 2010

Comunicado

Caros leitores:
Encontra-se em fase final de preparação, uma série de três artigos sobre Matemática-Criptografia. No primeiro o tema abordado é Números Aleatórios que postaremos em breve.
A Equipe

segunda-feira, 8 de fevereiro de 2010

Sete Pecados de um Professor

Sete Pecados de um Professor

“ Não querem um super-professor. Querem apenas alguém que os apoie. Pode também ser compreensivo. E se não for pedir muito: divertido e bem disposto. Se não, pelo menos que cumpra a sua função principal: a de explicar bem a matéria. Este é o perfil do professor que o aluno gosta de ver na sala de aula.”(autor desconhecido)


1. Ser bonzinho, no sentido de facilitar a vida do aluno em sua disciplina, pois, você será esquecido o mais rápido possível.

2. Não cumprir o programa da disciplina.


3. Contar piada em demasia na sala de aula.

4. Comentar a atitude de outro Professor com relação ao seu procedimento e comportamento.

5. Utilizar sua sala de aula para despejar seus problemas pessoais.

6. Usar vestimenta inadequada.

7. Chegar atrasado em sala de aula.

Entendemos que, o professor não cometendo estes erros,e respeitando os 7 mandamentos em artigo já postado neste blog, terá sucesso na arte de ensinar .

domingo, 20 de dezembro de 2009

Não somos de ferro...


Caros leitores deste blog:

Com a proximidade das festas do final de ano, sentimos como todos, aquela sensação de viver constantemente em festa, comprando presente para os nossos filhos e sem esquecer de prestar nossas homenagens a Jesus Cristo, pelo seu aniversário.


Aproveitaremos estes dias para uma folga de nossas atividades e os artigos do blog faz parte deste roteiro. Pedimos, assim sua paciência e voltaremos no dia 10 de janeiro de 2010 às 10:10 horas (gostamos do 10, como Zagalo do 13) com as atividades do blog.


Feliz Festas a todos

José Vicente, Solange, Carlos Alberto e Roberto Capistrano



quinta-feira, 17 de dezembro de 2009

O Cientista da computação

Para ser um cientista da computação é preciso dominar o computador e conseqüentemente, gostar de Matemática, já que o computador é uma máquina baseada na sua lógica . Desenvolver e aperfeiçoar programas de computador para jogos eletrônicos é uma das funções do cientista da computação que atrai muitos jovens, área esta conhecida como realidade virtual e entretenimento. O trabalho deles está presente em tudo que usa a tecnologia de hoje: em casa, na escola, no trabalho, nos bancos, nos locais públicos, enfim, por todo lado. São eles os responsáveis por desenvolver e manter boa parte da tecnologia a que temos acesso, mas quase ninguém se dá conta disso. O cientista da computação pode trabalhar desenvolvendo sistemas para a tecnologia agrícola, celulares, equipamentos eletrônicos e bancos de dados, entre outras áreas. Ele não é um simples programador. Ele tem uma visão muito mais ampla do que é a computação, por isso desenvolve atividades mais específicas, que vão do hardware ao software. Quando algum problema nestas aplicações são detectado, o cientista da computação deve resolve-los.

Uma das áreas que promete revolucionar a computação na qual os cientistas estão trabalhando, é a de Computação Científica Distribuída, a qual procura interligar computadores a distância formando supercomputadores virtuais, que podem processar rapidamente um grande volume de informações e cálculos científicos.
As Ciências Naturais e Tecnológicas avançam de forma rápida, de forma que acreditamos que novas áreas destinadas aos cientistas da computação deverão aparecer no futuro. Encerrando este texto, lembrando que organização, criatividade e motivação não podem faltar ao profissional desta área, como em qualquer outra profissão.

quarta-feira, 9 de dezembro de 2009

Sete mandamentos para um BOM PROFESSOR de matemática

“ Não querem um super-professor. Querem apenas alguém que os apoie. Pode também ser compreensivo. E se não for pedir muito: divertido e bem disposto. Se não, pelo menos que cumpra a sua função principal: a de explicar bem a matéria. Este é o perfil do professor que o aluno gosta de ver na sala de aula.”(autor desconhecido)


1.apresentar domínio dos conteúdos matemáticos a ensinar;
2.articular o ensino de Matemática com outras áreas de conhecimento;
3.usar as novas tecnologias como ferramentas para aprendizagem da matemática;
4.preparar as aulas;
5.não faltar as aulas;
6.respeitar os alunos;
7.estimular os alunos a novos conhecimentos.

Entendemos que, o professor respeitando estes mandamentos, terá sucesso na arte de ensinar MATEMÁTICA.