Vamos Aprender Para Ser Mais Fácil!


Closed Thread
 
Thread Tools Display Modes
Old 01-06-2006   #1
Member
 
mamsilva's Avatar
 
Join Date: 11-04-2006
Location: Portugal
Posts: 8
Thanks: 0
Thanked 0 Times in 0 Posts

My System: Satycon F1TA
Vamos Aprender Para Ser Mais Fácil!

Bem para todos os que querem estudar aqui fica um excelente trabalho de pubgate, este extraordinário sr. publicou esta maravilha e está a continuar as suas lições, conforme elas forem aparecendo eu venho cá postalas.


1ª AULA




INTRODUÇáO
-------------
Como sabem é proibido publicar chaves operativas de forma chapada aqui no fórum. Porém não é proibido eu colocar a EMM de envio de chaves (quando as havia. Que saudades!) pois as chaves embora lá contidas estão encriptadas. Quer com isto dizer que se pode colocar cá chaves operativas desde que encriptadas.
Pois será assim que ela irá aparecer se forem cumpridos os requesitos que a seguir enunciarei nas regras.
Virá encriptada em honra a um grande senhor da comunidade científica do passado, e se a vossa participação correr bem, já no dia 18, simbolicamente, dado um acontecimento ligado a esse senhor, e num código usado por ele.


REGRAS
-----------

A ideia é por-vos a pensar e em conjunto chegarmos ao que pretendemos - a chave.
Ao contrário do que infelizmente é habitual pelos fórums estão à vontade para dizerem o que vos aprouver. Da minha parte, estejam descansados que não vão ter censura nem bocas de reação e desmotivação. Ninguém nasce ensinado. Infelizmente, devido a esse tipo de atitudes generalizadas muitos já têm medo de perguntar. Até mesmo eu especializei-me mais numas áreas do que noutras. Em algumas sou um perfeito novato. Mas claro está, o PubGate com o algum estatuto que tem fica mal perguntar coisas tão básicas, e lá vou tendo que estudar só. Como aliás, foi o que a maioria dos vossos "mestres" fez para chegar onde chegou, embora com um ou outro empurraozinho, mas acima de tudo com muito empenho próprio.
Ora bem, então tal como disse acima, vamos em conjunto chegar à solução. Por isso participem.

Para começar, o TPC (Trabalho para casa):
- Estudar o DVB
- Estudar o RSA (colocarei o documento a seguir)

Posteriormente, virão as primeiras perguntas.
Bons estudos.

Muitos perguntam por onde começar para estudar os sistemas de encriptação usados no Sat. Ora aqui têm um caminho, simples para já e com documentos pequenos e acessíveis.
- Opcional: Vão começando a morder na FAQ do StuntGuy. Sim é para Nagra 1, mas muitas coisas ainda são válidas. E as que não são criam-vos bases para entenderem o Nagra 2.
Ficou por dizer acima, nas palavras que nada tem que ver com estudo, que eu não negoceio, nem FTAs nem MOSCs, aliás não tenho sequer um MOSC 110 para mim.
Frase célebre: "Os vencidos vêem dificuldades em todas as oportunidades. Os vencedores vêem oportunidades em todas as dificuldades." (Não recordo o autor)
Esta frase foi de grande ajuda para mim aquando da aproximação da mudança para o ano 2000 e de todas as dificuldades que isso me iria trazer tendo que alterar todo o software para o tornar compatível. Felizmente, optei por aproveitar a dificuldade, tornando-a numa oportunidade (de estudar, desenvolver, etc.) e saí vencedor.
No nosso caso, a falta de chave é uma óptima oportunidade para o incentivo ao estudo. Espero encontrar por aqui vencedores dispostos a ultrapassar as dificuldades.

NOTA IMPORTANTE
Só mais uma coisa, e também sem querer gerar polémica.
Tudo o que eu aqui colocar, como sempre foi meu apanágio, e que tenha sido CRIADO POR MIM, não tem quaisquer direitos de autor. Podem e devem colocar no número máximo de fórums que quiserem e entenderem, não precisam de fazer qualquer referência à minha pessoa, e estou-me nas tintas para os créditos. Não o faço para ganhar louros, prestígio ou protagonismo. Podem até, se quiserem, dizerem que é de vossa autoria que isso não me aquece nem me arrefece, embora essa atitude não a considere muito própria, e só atribuível a crianças de caracter mesmo que não o sejam na idade, e essas atitudes ficam com quem as toma.
Claro está que respeito, admiro, e compreendo, quem é a favor da protecção dos direitos de autor e zela por eles, mesmo que toda esta investigação seja baseada precisamente na violação desses mesmos direitos e outros consagrados na lei. Não vale a pena taparmos o sol com a peneira e dizermos que é apenas para estudo. Ponham o dedo na consciência. Claro que o estudo em si, "não faz mal", mas quer aceitemos ou não só esse estudo já viola a lei, quanto mais o uso que damos aos resultados obtidos. Isso é como eu passar noites a fio em volta da fechadura da porta do meu vizinho a estudá-la e ver se a consigo abrir, mas dizer que ando apenas a estudar e ver se realmente é segura e não dá para abrir. É escusado alegar que não o quero assaltar mas apenas estudar. E nem vale a pena mais polémicas sobre este tema nem bater mais na mesma tecla. Estamos todos no mesmo barco.
ATENÇáO ao que eu disse: CRIADO POR MIM. Não é o mesmo que colocado por mim. E quando a informação pertencer a outra pessoa eu refiro. A que for colocada por outros ou for de outros cuidado para onde a levam.


Para estudo:
Sistema DVB:
_http://en.wikipedia.org/wiki/DVB-CA

O que é o RSA? - Sua história e origem

Este artigo foi encontrado no _http://www.funfiles.ws/upload.php (_http://www.funfiles.ws/upload.php?do=download&id=35882), e foi publicado pelo "fclone" que agradece ao "oilen (3º Sargento)". Créditos devidamente atribuídos e como o artigo não referia restrições de publicação cá vai. Motivo de orgulho, pois está em Português de Portugal e portanto escrito por um português.


----------------- Material pertencente aos referidos autores --------------
A História do RSA

Ron Rivest
Como era o trio de pesquisadores do Laboratório de Ciência da Comp*tação do MIT em 1976? Ron Rivest é um jovem cientista da comp*tação, dono de uma curiosidade científica insaciável e de uma imensa capacidade de absorver e aplicar novas ideias. Assim que leu o trabalho publicado por Diffie, Hellman e Merkle, ficou obcecado pelo assunto e passou a procurar sem descanso uma função matemática que pudesse transformar a idéia dos três criptólogos num sistema real e viável. Além disso, Rivest acabou "contaminando" um colega, Adi Shamir, também cientista da comp*tação. Shamir, conhecido pelo seu intelecto brilhante, mordeu a isca. Os dois conjecturavam insistentemente à procura de uma cifra assimétrica produzindo teorias mirabolantes que, uma após a outra, eram contestadas pelo terceiro colega, Leonard Adleman. Depois de quase um ano de brainstorming, Adleman, um matemático calmo e detalhista, estava a ganhar-lhes por mil a zero, pois, até então, todas as sugestões de Rivest e Shamir tinham falhas imperdoáveis.

Adi Shamir
A esperança estava quase a esgotar-se quando Rivest, no meio de uma noite de insônia, se lembrou de uma particularidade da matemática. Era muito simples e provavelmente tinha tomado conhecimento do assunto quando ainda estava na escola primária: a factoração. Multiplicar dois números primos é uma questão de segundos mas, se temos apenas o resultado e quisermos encontrar os números primos (factores) deste resultado, o processo é bem mais demorado. À medida que multiplicamos números primos cada vez maiores, o tempo gasto para factorar o resultado aumenta exponencialmente. Talvez esta função fosse a resposta tão procurada!
A noite foi definitivamente de insônia. Rivest escreveu até o romper do dia e, logo de manhã, foi procurar o seu "advogado do diabo". Adleman, acostumado às explosões intelectuais do amigo, começou a ler o texto preparando-se para encontrar defeitos. Leu, releu e, para o espanto dos dois, não havia nada para ser contestado. Nascia o primeiro algoritmo de chave pública, a primeira cifra assimétrica perfeitamente acabada.

Leonard Adleman
Mais uma curiosidade: Rivest tinha baptizado o algoritmo de ARS, colocando as iniciais do sobrenome do trio pesquisador em ordem alfabética. Adleman protestou porque achava que tinha contribuído pouco e porque não via futuro algum na publicação do trabalho. Pediu inclusive que o seu nome fosse retirado. Rivest, ciente da importância do papel desempenhado por cada um, pediu que Adleman pensasse melhor no assunto e desse a sua resposta no dia seguinte. Não querendo magoar os amigos, Adleman concordou que o seu nome fosse citado em último lugar, motivo pelo qual a cifra foi rebatizada e passou a ser chamada de RSA.
mamsilva is offline  
Old 01-06-2006   #2
Member
 
mamsilva's Avatar
 
Join Date: 11-04-2006
Location: Portugal
Posts: 8
Thanks: 0
Thanked 0 Times in 0 Posts

My System: Satycon F1TA

2ª AULA



Noções de Aritmética

Os conhecimentos necessários para entender o RSA são básicos. Antes de mais nada, é preciso lembrar que um número primo é um número diferente de 1 que só é divisível exactamente por 1 ou por si mesmo. Assim, 3 é um número primo porque só tem uma divisão exacta quando dividido por 1 ou por 3. Já o número 4 não é primo porque pode ser dividido exactamente por 1, 2 e 4. Se o número 4 não é um número primo, então pode ser factorado, ou seja, pode-se encontrar os números primos que, multiplicados, resultam em 4 (no caso, 2 x 2).

Existem alguns números conhecidos como primos entre si. Dois números inteiros são ditos primos entre si quando não existir um divisor maior do que 1 que divida ambos. Isto significa que o máximo divisor comum dos primos entre si é igual a 1.

Outro conceito necessário é a aritmética modular. Na aritmética modular não dispomos de uma quantidade infinita de números, mas de um grupo finito deles. O melhor exemplo é o mostrador do relógio que, por sinal, trabalha no módulo 12. Quando o mostrador passa do 12, não tem como mostrar 13 horas porque o conjunto dos números disponíveis vai de 1 a 12. Desta forma, 12 horas + 1 hora = 1 e 9 horas + 8 horas = 5. Costuma-se escrever estas operações da seguinte forma: 12 + 1 = 1 (mod 12) e 9 + 8 = 5 (mod 12).



O modo para se encontrar um resultado modular é dividindo o resultado não modular pelo módulo e considerar o resto. Por exemplo, 9 + 8 = 17 e 17 ÷ 12 = 1 com resto 5. Da mesma forma, 11 x 9 (mod 13) é 11 x 9 = 99 e 99 ÷ 13 = 7 com resto 8, ou seja, 11 x 9 = 8 (mod 13). Podemos complicar um pouco as coisas e considerar uma potenciação. Digamos que a base seja 3 e que este número seja elevado a um número qualquer que chamaremos de x. Para analisar o comportamento da função 3x (mod 7) acompanha os resultados obtidos na tabela 1. Na operação normal, os valores encontrados são crescentes. Já na operação modular, os resultados são erráticos e difíceis de predizer.

Pois bem, por mais incrível que possa parecer, para entender a mecânica do algoritmo RSA não é preciso mais do que isto!


A mecânica do algoritmo RSA

Rivest, Shamir e Adleman criaram um função especial que praticamente pode ser considerada de via única. As funções de via única autênticas não têm volta, ou seja, o resultado não pode ser revertido para os valores iniciais. A função do RSA é tão complicada ou tão demorada de ser revertida que, para efeitos práticos, pode ser considerada como uma função de via única. O algoritmo pode ser dividido em 6 fases, a saber:


1. Escolha de dois números primos gigantes

O destinatário ou dono da chave privada deve escolher dois números primos. Quanto maiores forem estes números, maior será a segurança obtida. Estes números são identificados por p e q e devem ser mantidos em segredo. Para facilitar o acompanhamento do processo, usaremos um exemplo com números primos pequenos: p = 19 e q = 23.



2. Cálculo da chave pública

Escolhidos os números primos secretos, o destinatário multiplica-os para obter um novo número N, ou seja:


N = p x q
N = 19 x 23
N = 437


A seguir, escolhe um número e que não tenha factores comuns com (p-1) x (q-1). Isto é o mesmo que dizer que e e (p-1) x (q-1) precisam ser primos entre si:


(p-1) x (q-1) = 18 x 22
(p-1) x (q-1) = 396

Factorando o resultado 396, obtemos o seguinte:


396 | 2
198 | 2
99 | 3
33 | 3
11 | 11
1 |

ou seja, 396 = 2 x 2 x 3 x 3 x 11

Para que e e 396 sejam primos entre si, o valor de e não pode ser divisível nem por 2, nem por 3 e nem por 11. Digamos que o número escolhido tenha sido 13.

Estes dois números, N = 437 e e = 13 são a chave pública.


2. Cálculo da chave pública

Aqui cabe mais uma explicação aritmética. O inverso de um número inteiro é 1 dividido por este número. Por exemplo, o inverso de 3 é 1/3 porque 3 x 1/3 = 1 e o inverso de 18 é 1/18 porque 18 x 1/18 = 1. Este conceito também pode ser aplicado à aritmética modular.

Considera 5 (mod 14). O resultado é 5 porque 5 ÷ 14 = 0 com resto 5. O inverso de 5 (mod 14) precisa de ser um número que, multiplicando 5, resulte 1 no módulo 14 (assim como 3 x 1/3 = 1). Neste caso, o cálculo do inverso não é uma tarefa trivial. Como os números do exemplo são pequenos, podemos achar o inverso de 5 (mod 14) por tentativa:



5 x 1 (mod 14) = 5 (mod 14) = 5
5 x 2 (mod 14) = 10 (mod 14) = 10
5 x 3 (mod 14) = 15 (mod 14) = 1 --

Se chamarmos a 5 a , o módulo de n e a variável que multiplica 5 de y , podemos generalizar o problema do inverso de um módulo como a x y (mod n) = 1 onde precisamos encontrar o valor de y . O inverso de um módulo também é conhecido como redução modular. É importante saber que nem todos as reduções modulares têm soluções. Por exemplo, 2 não tem um inverso no módulo 14. De modo geral, quando a e n são primos entre si, existe uma solução única e, quando a e n não são primos entre si, não existe nenhuma solução.

Para calcular a chave privada será preciso fazer uma redução modular. No exemplo que estamoa a usar, é a redução modular 13 (mod 396). O cálculo de um inverso modular por tentativa pode ser um processo muito demorado e existem formas mais elegantes de resolver o problema. Uma delas é o algoritmo de Euclides estendido que será aplicado no nosso exemplo.



(1) 13 ÷ 396 = 0 com resto 13 ... divide-se o valor pelo módulo
(2) 396 ÷ 13 = 30 com resto 6 ... divide-se o divisor anterior pelo resto
(3) 13 ÷ 6 = 2 com resto 1 ... divide-se o divisor anterior pelo resto
6 ÷ 1 = 6 com resto 0 ... divide-se o divisor anterior pelo resto

Na verdade, o cálculo acima nada mais é do que o cálculo do máximo divisor comum entre 13 e 396, comumente expresso como MDC(13,396). Como o último divisor com resto zero (divisão exacta) é 1, sabemos que o MDC(13,396) = 1. Este é o algoritmo de Euclides que também serve para determinar se os números são primos entre si.

O algoritmo de Euclides estendido usa apenas os restos diferentes de zero das divisões mostradas acima. Estes podem ser expressos da seguinte maneira:



(1) 13 = (1 x 13) - (0 x 396)
13 = (1 x 13)

(2) 6 = (1 x 396) - (30 x 13) ... e como (1) nos diz que 13 = (1 x 13)
6 = (1 x 396) - (30 x (1 x 13))
6 = (1 x 396) - (30 x 13)

(3) 1 = (1 x 13) - (2 x 6) ... e como (2) nos diz que 6 = (1 x 396) - (30 x 13)
1 = (1 x 13) - 2 x ((1 x 396) - (30 x 13))
1 = (1 x 13) - (2 x 396) + (60 x 13)
1 = (61 x 13) - (2 x 396)

O multiplicador de 13 é o inverso de 13 (mod 396). Neste caso, se chamarmos o inverso de d , então d = 61. Esta é a chave privada e que precisa ser mantida em sigilo.

Como os números primos que serviram de base para obter estes valores já cumpriram a sua função e precisam ser mantidos em segredo, eles podem ser simplesmente descartados. Resumindo os passos até este ponto temos:



Chave pública: 437 e 13
Chave privada: 437 e 61
mamsilva is offline  
Old 01-06-2006   #3
Holy Grail
 
HD2All's Avatar
 
Join Date: 16-03-2006
Location: F.L.S.P Underground :)
Posts: 5093
Thanks: 32
Thanked 1982 Times in 220 Posts

My System: ######DreamBox 800s ######DreamBox 7020s ######DreamBox 600s ######DreamBox 500s ######BullBox 500s

Olha eu conheço o mestre e não estou de acordo que postes aqui assim aqui o trabalho dele sem consentimento do mesmo e se reparares vão surgir dúvidas de utilizadores que tu não vais poder responder.....
Por isso é melhor deixar o trabalho do mestre nos forum onde ele está a praticar já á muito tempo que sigo o seu trabalho e acho 5 estrelas....
Não só no g6 mas sim noutro forum de undergound que já vai muito mais avançado o post só depois é que ele levou o trabalho para o g6.....


Se ele um dia tiver interessado em passar por cá e quiser tambem comesar aqui o trabalho estamos com as portas abertas....
__________________
  • Utilizem o Forum para dúvidas e não as Mensagens Privadas(PM)
  • Para consultar as regras de bom funcionamento do Satellites.co.uk clique aqui
  • Perde 1 minuto e apresenta-te a comunidade
  • Gostas do Satellites.co.uk ? E que tal fazeres um pequeno donativo para ajudar a suportar as despesas!



HD2All is offline  
Old 01-06-2006   #4
Member
 
mamsilva's Avatar
 
Join Date: 11-04-2006
Location: Portugal
Posts: 8
Thanks: 0
Thanked 0 Times in 0 Posts

My System: Satycon F1TA

3ª AULA


4. Publicação da chave

Uma vez definida a chave pública N = 437 e e = 13, ela pode ser distribuída livremente para servir de chave para todos os remetentes que quiserem enviar mensagens cifradas para o dono da chave. É importante esclarecer que se pode publicar e e manter d em segredo ou fazer o contrário, publicar d e manter e em segredo.



5. Cifrar uma mensagem

Digamos que um dos amigos do dono da chave queira enviar uma mensagem confidencial e que o conteúdo desta mensagem seja "numaboa". Esta mensagem precisa ser transformada num número (ou números) para que o algoritmo possa ser aplicado. Para isto, os valores ASCII dos caracteres da mensagem são perfeitos:



n = 110
u = 117
m = 109
a = 97
b = 98
o = 111
a = 97

Neste caso, a mensagem será representada por m = 110117109979811197. Inicialmente m deve ser dividida em blocos. No presente exemplo, um bom tamanho serão blocos de três dígitos. Assim:


m1 = 110
m2 = 117
m3 = 109
m4 = 979
m5 = 811
m6 = 197

É preciso esclarecer que o último bloco não precisa necessariamente de ter três dígitos. Cada um dos blocos será submetido à seguinte cifragem usando a chave pública, onde N é o módulo e e é o expoente:



c = me (mod N)

c1 = 110 ^ 13 (mod 437)
c2 = 117 ^ 13 (mod 437)
c3 = 109 ^ 13 (mod 437)
c4 = 979 ^ 13 (mod 437)
c5 = 811 ^ 13 (mod 437)
c6 = 197 ^ 13 (mod 437)

Como as máquinas de calcular normalmente não mostram mais do que 10 a 12 dígitos, podemos facilitar os cálculos usando a propriedade distributiva da multiplicação modular. Como 13 = 5 + 5 + 3, então



c1 = 110 ^ 13 (mod 437)
= [110 ^ 5 (mod 437) x 110 ^ 5 (mod 437) x 110 ^ 3 (mod 437)] (mod 437)

Como 110 ^ 5 (mod 437) = 16.105.100.000 (mod 437) = 325
e 110 ^ 3 (mod 437) = 1.331.000 (mod 437) = 335

c1 = [325 x 325 x 335] (mod 437)
= 35.384.375 (mod 437)
= 48

c2 = 119 ^ 13 (mod 437)
= [119 ^ 5 (mod 437) x 119 ^ 5 (mod 437) x 119 ^ 3 (mod 437)] (mod 437)

Como 119 ^ 5 (mod 437) = 23.863.536.599 (mod 437) = 104
e 119 ^ 3 (mod 437) = 1.685.159 (mod 437) = 87

c2 = [104 x 104 x 87] (mod 437)
= 940.992 (mod 437)
= 131

Completando os cálculos, a mensagem cifrada será 048 131 401 146 243 330



6. Decifrar a mensagem

Decifrar a mensagem significa realizar a mesma exponenciação, porém usando a chave de decifração ou chave privada:



m = cd (mod N)

m1 = 48 ^ 61 (mod 437)
m2 = 131 ^ 61 (mod 437)
m3 = 401 ^ 61 (mod 437)
m4 = 146 ^ 61 (mod 437)
m5 = 243 ^ 61 (mod 437)
m6 = 330 ^ 61 (mod 437)

Se, com o expoente 13 já é aconselhável usar a propriedade distributiva da multiplicação modular, com o expoente 61 esta necessidade fica ainda mais evidente. Como normalmente usamos o comp*tador para fazer os cálculos e a máquina usa o sistema binário, segue um exemplo de como usar a base 2. O valor decimal 61 é expresso em binário como 0011 1101, ou seja, é o mesmo que 2 ^ 5 + 2 ^ 4 + 2 ^ 3 + 2 ^ 2 + 2 ^ 0 = 32 + 16 + 8 + 4 + 1 = 61. Tomando o bloco m1 como exemplo, podemos calcular:



48 ^ 61 (mod 437) = 48 ^ 32 x 48 ^ 16 x 48 ^ 8 x 48 ^ 4 x 48 (mod 437)

Como
48 ^ 4 (mod 437) = (48 ^ 2 (mod 437)) ^ 2 (mod 437)
= (2.304 (mod 437)) ^ 2 (mod 437)
= 119 ^ 2 (mod 437)
= 14.161 (mod 437)
= 177

Como
48 ^ 8 (mod 437) = ((48 ^ 2 (mod 437)) ^ 2 (mod(437)) ^ 2 (mod 437)
e (48 ^ 2 (mod 437)) ^ 2 (mod 437) = 177
então = 177 ^ 2 (mod 437)
= 31.329 (mod 437)
= 302

Pelo mesmo raciocínio
48 ^ 16 (mod 437) = (48 ^ 8 (mod 437)) ^ 2 mod (437)
= 302 ^ 2 mod (437)
= 91.204 (mod 437)
= 308

E novamente pelo mesmo raciocínio
48 ^ 32 (mod 437) = (48 ^ 16 (mod 437)) ^ 2 mod (437)
= 308 ^ 2 mod (437)
= 94.864 (mod 437)
= 35

De posse destes valores intermediários, fica fácil calcular



4861 (mod 437) = 48 ^ 32 x 48 ^ 16 x 48 ^ 8 x 48 ^ 4 x 48 (mod 437)
= 35 x 308 x 302 x 177 x 48 (mod 437)
= 27.659.237.760 (mod 437)
= 110 o valor original

Esta forma "binária" de calcular a exponenciação é um bom exemplo de como montar uma sub-rotina numa qualquer linguagem de programação para calcular tanto a cifragem quanto a decifração porque é iteractiva.

Segurança e Velocidade

Afirma-se com frequência que a segurança do RSA depende exclusivamente da dificuldade de factorar números grandes. Mas não é bem assim. Até agora não foi provado matematicamente que seja necessário fazer a factoração de N para calcular a mensagem clara a partir do texto cifrado e da chave pública. Portanto, não é possível descartar a possibilidade de algum "maluco" descobrir uma forma de encontrar a chave privada usando a chave pública. Enquanto isto não acontecer, a forma mais óbvia de atacar o RSA vai continuando a ser, descobrir um método de factoração rápido que consiga abrir N nos seus factores primos. Também enquanto isto, a segurança do RSA vai depender essencialmente dos números primos que escolhermos para criar as chaves. Primos pequenos, como os usados no exemplo, são um desastre e primos grandes demais (usados pelos paranóicos por segurança) acabam por tornar os cálculos extremamente lentos.

Já que falamos de cálculos lentos, não custa frisar que um software que implementa o algoritmo RSA é cerca de 100 vezes mais lento do que um que implementa o DES. Por mais optimizado que seja, nada supera uma cifra de bloco em termos de velocidade. Se o algoritmo for implementado através de hardware, o cenário não melhora. Muito pelo contrário. Pelo que se sabe, chips especiais para RSA são cerca de 1000 vezes mais lentos do que chips para o DES, ou seja, em termos de velocidade, a coisa fica 10 vezes pior! Mas, apesar de tudo isto, o que eu tenho a dizer é "vida longa para os algoritmos assimétricos!".

Uma dúvida colocada no outro fórum e que poderá ser útil para esclarecimento também aqui:
Porque foi escolhido o número 13 para fazer parelha com o 396 e não outro qualquer?

RESPOSTA:

Porque o número escolhido e 396 tinham que ser primos entre si. Ou seja, o Máximo Divisor Comum teria que ser o 1, e não poderia ser nem o 2, nem o 3, nem o 11, já que são esses os divisores de 396. Foi o 13, como poderia ter sido outro qualquer que cumprisse estes requisitos.

Conselho: Utilizem o Excel e as seguintes funções para fazerem e conferirem os cálculos. É mais dificil do que com a calculadora do Windows mas mais fácil de entenderem pois podem manter tudo organizado e com os números e cálculos anteriores à vista.
Funcões a utilizar:
MDC - Máximo divisor comum
Exemplo: =MDC(13;396)

Resto - Resto da divisão inteira ou MODulus.
Exemplo: Resto(15;14)

Exponenciação
Exemplo: =110 ^ 5

First things firts - as primeiras coisas primeiro:
Por favor tentem sempre que possível perguntar e solicitar o que necessitarem sem medos neste tópico. Por uma questão de democracia e não só, não irei responder por PM, não levem a mal, e peço-vos que entendem. Pois seria algo fastidioso responder a cada pergunta por PM e as respostas de uns servem para outros que nem sequer perguntam. Por isso tudo será tratado aqui.

Quem me conhece sabe que não cedo a pressões. Claro está que muita gente está apreensiva com o rumo que este tópico irá tomar e já começaram as ameaças e pressões em privado. Continuem a mandar, sempre vai dando para me divertir um pouco! Sabem que mais? Azar o vosso. Não sou vosso sócio, não vos incentivei ao negócio, por isso amanhem-se. Como são muito poucos os que têm o previlégio de saber onde moro, e esses não me vêm dar um tiro na cabeça, isto vai mesmo ir até ao fim.

Vamos lá ao estudo pessoal que eu gostaria de cumprir a data de dia 18, e muito ainda temos para fazer. (Esta data foi a que apontei no outro fórum onde iniciei este estudo. Aqui é virtualmente impossível chegarmos ao objectivo até ao dia 18 uma vez que começamos mais tarde, mas será o mais depressa possível, logo que os estudos dos alunos avancem).

As primeiras perguntas aqui vão:

1) O que é o DVB? Explique o seu funcionamento e implementação com exemplos.

2) O que chega até ao nosso receptor pelo cabo através da antena?

3) Que tratamento faz o receptor aos dados que recebe?

4) Para que serve a CAM? Que tipo de comunicação é feita entre o receptor e a CAM e esta e o cartão? Esta comunicação é plana ou encriptada?

5) Que comandos são genericamente enviados ao cartão? Como são enviados esses comandos? Planos ou encriptados?

6) Que algoritmos de encriptação são utilizados em Nagra? Explique em traços gerais e com um exemplo cada um deles?

7) Que pressupostos e pre-requisitos são necessários cumprir para que o receptor abra o sinal? Como abre o receptor o sinal? Que recebe o receptor da CAM/Cartão que lhe permite abrir o sinal?

8) Os dados que o receptor recebe da CAM/Cartão vêm planos ou encriptados?

9) Que chave é utilizada para encriptar/desencriptar os diversos dados?

10) Quais os tipos de dados, variaveis e chaves são utilizados nos algoritmos N2 e na comunicação Deco->CAM->Cartão?


Por agora é este o primeiro exame. Aguardo estudo, respostas e participação. Chegaremos mais cedo à resposta do que aquilo que vocês possam imaginar.

De facto, e digo eu infelizmente, começaram a aparecer soluções quer em fórums quer em upload centers. Digo infelizmente, pois queria aguentar isto pelo menos até dia 18. Faço votos porém que muito embora já exista solução, tenham a sabedoria suficiente para entender, que muito mais importante do que ter essa solução temporária por agora, será saber como chegar a ela no futuro próximo quando fizer novamente falta. Por isso espero que os estudos continuem.

O Excel pode ser uma ferramenta útil, embora básica, para este estudo. Não o será certamente para casos praticos de Nagra, pois para isso existem ferramentas mais adequadas. No entanto, chamo particular atenção para a ajuda do Excel. As traduções à Microsoft resultam nisto: A função mod só é válida no Excel em Inglês. No Excel em português terão que usar a função "resto" com a mesma sintaxe. Alguma ave de rapina de esperteza saloia se preocupou em traduzir o nome das funções (absurdo) mas esqueceu de traduzir a ajuda. Isto acontece em imensas funções do Excel, infelizmente (Exemplos: Sum/Soma; RoundUp/Arred.paracima; etc.). Por isso é que o prefiro usar em Inglês.
Por fim, tentar esclarecer o que é o Mod. O Mod nada mais é do que o resto da divisão inteira.
Para a entender, torna-se necessario primeiramente perceber o que é uma divisão inteira. Numa divisão inteira, apenas o valor inteiro é assumido como resultado, descartando-se os valores decimais.
Exemplo:
Divisão normal: 5 : 2 = 2,5
Divisão Inteira(LN): 5 : 2 = 2 ; resto 1
Então o resto da divisão inteira é o que sobra se multiplicarmos o restultado (2) pelo divisor (2) e os subtrairmos ao dividendo (5). Assim temos que:

5 - (2*2) = 5 - 4 = 1

MOD = Resto da divisão inteira

Legenda:
: --> Dividir

--------------------------------------- // -----------------------------

Exemplos em Excel Pt:
=resto(7;3)
=resto(12;4)

Imaginem um relógio. Imagina o contador do segundos. Quando atinge 59, a seguir passa a 0, e o dos minutos avança mais um, o que quer dizer que temos decorridos pelo menos 61 segundos. Ora isto nada mais é do que um Modulus.
Imaginem que têm 190 segundos e querem saber em minutos e segundos o que isso dá. Fazem então assim:
190 mod 60 = 10; e a divisão inteira de 190 por 60 é 3.
Pelo que o 3 são os minutos inteiros decorridos, e 10 os segundos decorridos do 4º minuto.
Compreenderam?

No excel para o exemplo acima utilizem as seguintes funções:
Para calcular o resto da divisão inteira, neste caso os seguntos, usam a função já vossa conhecida RESTO (MOD em inglês):
=resto(190;60)
Resultado: 10
Para calcular a divisão inteira, ou seja, os minutos usam a função Quociente:
=Quociente(190;60)
Resultado: 3

Senão tiverem o Analisys Toolpack instalado aparecerá um erro tipo "#NOME".

Ajuda do MS-Excel sobre a função:

Devolve a parte inteira de uma divisão. Utilize esta função para eliminar o resto de uma divisão.

Se esta função não estiver disponível e devolver o erro #NOME?, instale e carregue o suplemento Analysis ToolPak.

Como?

No menu Ferramentas, clique em Suplementos.
Na lista Suplementos disponíveis, seleccione a caixa Analysis ToolPak e, em seguida, clique em OK.
Se necessário, siga as instruções do programa de configuração.
Sintaxe

QUOCIENTE(numerador;denominador)

Numerador é o dividendo.

Denominador é o divisor.

Observação

Se um dos argumentos não for numérico, QUOCIENTE devolve o valor de erro #VALOR!.

Exemplo

O exemplo pode ser mais fácil de perceber se o copiar para uma folha de cálculo em branco.

Como?

Criar um livro ou folha de cálculo em branco.
Seleccione o exemplo no tópico da ajuda. Não seleccione os cabeçalhos de linha ou coluna.


Seleccionar um exemplo na Ajuda

Prima CTRL+C
Na folha de cálculo, seleccione a célula A1 e prima CTRL+V.
Para alternar entre a visualização dos resultados e das fórmulas que devolvem os resultados, prima CTRL+` (acento grave) ou, no menu Ferramentas, aponte para Auditoria de fórmulas e, em seguida, clique em Modo de audição da fórmula.

1
2
3
4
A B
Fórmula Descrição (Resultado)
=QUOCIENTE(5; 2) Parte inteira de 5/2 (2)
=QUOCIENTE(4,5; 3,1) Parte inteira de 4,5/3,1 (1)
=QUOCIENTE(-10; 3) Parte inteira de -10/3 (-3)


Conforme prometido, venho publicar a k*y 00 da kaka para aqueles que porventura ainda não a saibam e se acharem que ainda vale a pena. Pois como já se devem ter apercebido, a chave começou a aparecer desde o dia 16 na net. Será que teve alguma a coisa a ver com o facto de eu dizer que a publicaria no dia 18?!?!?!
Talvez alguém teve medo de não ser o primeiro...

Quero desde já agradecer a colaboração e participação de todos. Os que se têm aplicado estão a ser excelentes alunos. Apesar do primeiro prémio ser entregue hoje, espero e incentivo a que continuem os estudos da forma interessada e aplicada que o fizeram até agora. Estão todos de parabéns.

Sobre o se devem ou não publicar as respostas ou corrigir em casa sem publicar, eu acho que devem publicar. Só assim poderemos explicar o que eventualmente esteja menos bem. De que serve conferir a correcção se ficarem na mesma com dúvidas.

Eis que chegou o tão esperado momento. Era suposto ser um momento de ponpa e circunstância e muita adrenalina o partilhar de algo que tantos procuravam, mas infelizmente, como sabem a chave foi publicada na net antes de tempo.
Venho publicá-la com algum atraso, ou seja, já no dia 19, porque estive a recodificá-la e a verificar, e também a colocar este trabalho noutro fórum onde tenho responsabilidades acrescidas, e como tal prioritárias. Não me levem a mal. Mas como vêm não me esqueci de vós.
Espero não me ter enganado nos cálculos.
Incialmente, como disse no primeiro post, pretendia codificá-la num código (Sequência de Fibonacci) honrando um Cientista do passado (Leonardo da Vinci) e dia 18 por ser o dia de estreia do filme "O Código Da Vinci".
Porém, depois de pensar melhor, achei que seria melhor não, pois seria mais uma codificação e poderia baralhar ainda mais os alunos principiantes.
Assim sendo, ela vai ser publicada com aquilo que aprenderam, pois nada melhor para praticarem a desencriptar. Tentem chegar à chave correcta. Não esquecer que os valores estão em decimal (3 dígitos) e no final cada conjunto deve ser convertido para Hexadecimal. Podem fazer isso tanto no Excel (Função =DECAHEX(185) ) ou na calculadora do Windows. Quanto aos cálculos terão que os fazer mesmo na calculadora do Windows pois o Excel não aguenta os números. Podem usar, no entanto, o Excel como apoio para irem anotanto os cálculos. A usar o Excel utilizariam as funções =Resto(x;y) que já estudamos e a função =Potência(x;y), que nem referi até ao momento por ser irrelevante, uma vez que o Excel não se aguenta com os nossos cálculos, desta vez.

Eis então a k*y 00 da kaka:
006 289 158 425 093 269 382 283 353 066 209 039 045 326 070 033

Usem a chave privada que já conhecem: 437 e 61 para desencriptar a mensagem.
Exemplo:
c1 = 6 ^ 61 (mod 437) = ...
Não esquecer no final converter a Hexadecimal.

Excel Versus Calculadora do Windows:

O Excel só se torna vantajoso pelo facto de permitir uma melhor visualização dos cálculos efectuados, pois podem sempre manter cada cálculo numa célula e assim ficam com todo o historial dos cálculos. Porém, tem de facto um senão, a saber, quando começamos a trabalhar com números muito grandes (o número de algarismos máximo do dividendo, depende dos algarismos do divisor) o Excel na função "RESTO" retorna o erro "#Num" mesmo com o "Analisys toolpack" activado e instalado. Para essas situações a Calculadora do Windows é de facto melhor, pois aguenta com mais alguns dígitos.

Exemplos:
=RESTO(12345678901;437) = 204
=RESTO(12345678901;4) = #Num
Ou seja, o dividendo é o mesmo, mas o facto de o divisor ter menos dígitos já não permite ao Excel trabalhar o resultado. Nem todos os programas estão preparados para trabalhar com Inteiros muito longos. Até algumas linguagens de programação têm essa dificuldade, e quanto a virgula flutuante por vezes ainda é pior.

para quem não sabe que na calculadora do Windows para efectuar a exponenciação devem utilizar o botão "X ^ Y". Primeiro escrevem a base (Ex. 975), depois pressionam o referido botão, e a seguir escrevem o expoente (Ex. 5).
mamsilva is offline  
Closed Thread

Bookmarks

« Fte Ajuda | paleio »

Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off
Forum Jump






All times are GMT +1. The time now is 06:23 PM.


All views and information expressed in users' communications and profiles represent the opinions of the users concerned and do not represent the views of Satellites.co.uk. All images and news content are believed to be in the public domain, except where otherwise stated. Forum software by vBulletin® Version 3.7.4
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.


Content Relevant URLs by vBSEO 3.2.0