Sei sulla pagina 1di 117

Ps-Graduao em Cincia da Computao

PROPOSTA DE ESQUEMA CRIPTOGRFICO PARA E-CASH


UTILIZANDO CRIPTOGRAFIA BASEADA EM CURVAS
ELPTICA

Por

DIMMY KARSON SOARES MAGALHES

Dissertao de Mestrado

Universidade Federal de Pernambuco


posgraduacao@cin.ufpe.br
www.cin.ufpe.br/~posgraduacao

RECIFE, AGOSTO/2012
UNIVERSIDADE FEDERAL DE PERNAMBUCO
CENTRO DE INFORMTICA
PS-GRADUAO EM CINCIA DA COMPUTAO

DIMMY KARSON SOARES MAGALHES

PROPOSTA DE ESQUEMA CRIPTOGRFICO PARA E-


CASH UTILIZANDO CRIPTOGRAFIA BASEADA EM
CURVAS ELPTICAS"

ESTE TRABALHO FOI APRESENTADO PS-GRADUAO EM


CINCIA DA COMPUTAO DO CENTRO DE INFORMTICA DA
UNIVERSIDADE FEDERAL DE PERNAMBUCO COMO REQUISITO
PARCIAL PARA OBTENO DO GRAU DE MESTRE EM CINCIA
DA COMPUTAO.

ORIENTADOR: PROF. RUY JOS GUERRA BARRETTO DE


QUEIROZ

RECIFE, AGOSTO/2012
Dissertao de Mestrado apresentada por Dimmy Karson Soares Magalhes
Ps-Graduao em Cincia da Computao do Centro de Informtica da
Universidade Federal de Pernambuco, sob o ttulo Proposta de Esquema
Criptogrfico para e-Cash Utilizando Criptografia Baseada em Curvas Elpticas
orientada pelo Prof. Ruy Jos Guerra Barretto de Queiroz e aprovada pela Banca
Examinadora formada pelos professores:

________________________________________________

Prof. Carlos Andr Guimares Ferraz


Centro de Informtica / UFPE

________________________________________________

Prof. Benjamn Ren Callejas Bedregal


Dept de Informtica e Matemtica Aplicada / UFRN
________________________________________________

Prof. Ruy Jos Guerra Barretto de Queiroz


Centro de Informtica / UFPE

Visto e permitida a impresso.


Recife, 11 de maio de 2012.

___________________________________________________
Prof. Nelson Souto Rosa
Coordenador da Ps-Graduao em Cincia da Computao do

Centro de Informtica da Universidade Federal de Pernambuco.


Dedico esse trabalho ao futuro, aos meus
pais, Joaquim e Socorro Magalhes e ao
meu irmo Jonny Willer que nunca me
deixaram sucumbir s tormentas. Dedico
ainda a minha querida esposa Dayanne
Magalhes que esteve ao meu lado em
cada lauda deste estudo
Agradecimentos

A realizao desse trabalho em muito se deve colaborao de


inmeras pessoas, s quais transmito os mais sinceros agradecimentos:

A Deus por solidificar todos os caminhos e me dar fora e


determinao na construo de um futuro cada vez mais prspero;

Professor Dr. Ruy Jos Guerra Barretto de Queiroz pela orientao


dedicada e compromissada, e pelo precioso conhecimento
transmitido;

A secretria executiva Socorro Magalhes pela ajuda nas correes


textuais de todos os trabalhos;

Ao ambientalista Joaquim Magalhes por sua sempre espirituosa


presena, na qual muito se espelha o desenrolar desse trabalho;

Ao irmo Jonny Magalhes pelas noites em claro em prol da cincia


e do aprendizado mtuo;

A minha madrinha Vera Soares pelo apoio desde o comeo e que


sempre me inspirou pela determinao e vontade de viver;

Ao amigo e irmo Mrcio Almeida por contribuir em todo o processo


de construo do conhecimento expresso nesse e noutros trabalhos;

Aos amigos e colegas de estudo Paulo Henrique Padovan, Carlos


Eduardo e Diego Dias pelos estudos debruados nas listas de
exerccios e conselhos sobre teoremas e definies apresentados em
aula;

A todos os amigos presentes nas calorosas discusses nas sees


de cinema voltadas para internet e sociedade na hora do almoo;

Aos amigos de escola que por vezes se revezavam nos bate-papo na


alta madrugada no me deixando sucumbir ao sono depois de horas
debruados sobre um livro de Lambda Clculo;

vii
A Dayanne de Sousa Magalhes, pelo companheirismo, pela
compreenso das tantas ausncias e dos interminveis dias
dedicados computao e a criptografia. Muito obrigado pelo apoio
indestrutvel e por tantas vezes me mostrar que era possvel e tudo
iria dar certo.

viii
A mind that's been stretched will
never return to its original dimension
Albert Einstein

ix
Resumo

A construo de uma nova estrutura monetria j est em andamento.


Esta cultura est diretamente relacionada com o avano tecnolgico que a
sociedade moderna vem vivenciando nas ltimas trs dcadas. O uso de meios
eletrnico como uma via para transferncias monetrias tm se tornado cada
vez mais presente.

A dificuldade central na implementao de um sistema de dinheiro


eletrnico ento cria-lo com uma analogia detalhista ao sistema real, i. e.,
manter todas as propriedades inerentes ao dinheiro real: integridade,
privacidade e no rastreabilidade. Um usurio deve ser capaz de identificar a
veracidade de uma unidade monetria eletrnica e a utilizao de seu dinheiro
deve ser sigilosa e deve manter de forma annima toda sua manipulao no
meio. O dinheiro fsico est, na pratica, livre desses problemas, j que produzir
notas idnticas s reais na prtica invivel e o mesmo no mantm
informaes sobre proprietrios anteriores.

Para garantir um sistema minimamente semelhante ao sistema


monetrio fsico, o desenvolvimento parte da estruturao de um esquema
criptogrfico suficientemente seguro que possa garantir: Sigilo, Autenticidade e
Integridade de todo o esquema. Como alternativa esse trabalho apresenta
esquemas criptogrficos baseados em curvas elpticas. Criptografia baseada
em curvas elpticas uma variao de criptografia assimtrica que usa a teoria
matemtica das curvas elpticas.

Na dissertao apresentada a fundamentao matemtica que envolve


a teoria de curvas elpticas bem como sua aplicao no mbito da criptografia.
construdo um esquema criptogrfico baseado nessa teoria aplicado a
dinheiro eletrnico.

Palavras-chave: Criptografia, Curvas Elpticas, Numerrio Eletrnico.

x
Abstract

The construction of new monetary framework is already in progress. This


culture is directly related to the technological advances that modern society has
experienced over the past three decades. The use of electronic way to cash
transfers has become increasingly present.

The main difficulty to build an e-Cash system is it creates with a detailed


analogy to the real system, in other worlds, keep all the inherent real money
properties: integrity, privacy and non-traceability. Any user should be able to
identify the real monetary unit, the use of e-Cash must be confidential and
remain anonymous throughout their manipulation. The real money is free of
these problems, as to produce identical notes to the real is unworkable and the
same does not hold information on previous owners.

To ensure minimally a similar monetary system to physical, the


development of the structuring of a cryptographic scheme that can guarantee
safe enough: Confidentiality, Integrity and Authenticity. Alternatively, this thesis
presents cryptographic schemes based on elliptic curves. Cryptography based
on elliptic curves is a variation of asymmetric encryption that uses the
mathematical theory of elliptic curves.

In this thesis presents the mathematical reasoning that involves the


theory of elliptic curves and their application in the context of cryptography. It
built a cryptographic scheme based on this theory applied to e-Cash.

Keywords: Cryptography, Elliptic Curves, e-Cash.

xi
xii
Notaes

#S Cardinalidade do conjunto S
Logaritmo na base b de x
Fq Corpo finito com q elementos
Para um corpo K, define-se
respectivamente como: grupo
multiplicativo, grupo aditivo e fecho
algbrico do grupo
char(K) Caracterstica de K
E Curva Elptica
(xp, yp) Coordenadas de um ponto P sobre a
curva
x(P) Coordenada x de um ponto P
y(P) Coordenada y de um ponto P
[m]P Multiplicao do mapa m aplicado ao
ponto P

xiii
Lista de Imagens

Figura 1 - Soma de Pontos de um Curva Elptica ............................................ 10


Figura 2 - Esquema Criptogrfico de Chave Pblica ........................................ 15
Figura 3 - Demonstrativo de uma nota real ...................................................... 70
Figura 4 - Fluxograma do sistema e-Cash ....................................................... 78
Figura 5 - Representao Grfica da e-Wallet ................................................. 79

xiv
Lista de Tabelas

Tabela 1 - Comparativo entra tamanho das chaves ......................................... 40


Tabela 2 - Estrutura de uma e-Coin ................................................................. 64
Tabela 3 - Estrutura de Requisio de e-Coins por Agentes Bancrios
Autorizados ...................................................................................................... 65
Tabela 4 - Estrutura da Requisio de e-Coins por Clientes ............................ 67
Tabela 5 - Estrutura da Resposta Requisio de e-Coins ............................. 67
Tabela 6 - Estrutura do Mdulo Observador e Validador ................................. 72
Tabela 7 - Estrutura da Requisio de Pagamento .......................................... 75
Tabela 8 - Tabela de Transaes..................................................................... 77

xv
Lista de Algoritmos

Algoritmo 1 - Assinatura Digital - DAS .............................................................. 25


Algoritmo 2 - Verificao de Assinatura Digital................................................. 25
Algoritmo 3 - Assinatura Digital baseado em Curvas Elpticas - ECDSA ......... 26
Algoritmo 4 - Verificao de Assinatura Digital baseado em Curvas Elpticas . 26
Algoritmo 5 - Encriptao ECIES ..................................................................... 29
Algoritmo 6 - Decriptao ECIES ..................................................................... 29
Algoritmo 7 - Validao de Chaves Pblicas .................................................... 30
Algoritmo 8 - Validao de Curvas Elpticas..................................................... 30
Algoritmo 9 - RSA............................................................................................. 35
Algoritmo 10 - Retirada de e-Coins .................................................................. 55
Algoritmo 11 - Pagamento ................................................................................ 55
Algoritmo 12 - Assinatura Cega em e-Wallet.................................................... 59
Algoritmo 13 - Protocolo de Criao de e-Coins .............................................. 65
Algoritmo 14 - Protocolo de Retirada de e-Coins por Agentes Bancrios
Autorizados ...................................................................................................... 66
Algoritmo 15 - Protocolo de Retirada de e-Coins por Clientes ......................... 68
Algoritmo 16 - Protocolo de Revogao de Transao .................................... 69
Algoritmo 17 - Protocolo de Verificao de Integridade do Mdulo .................. 72
Algoritmo 18 - Protocolo de Troca de e-Coins.................................................. 73
Algoritmo 19 - Protocolo de Pagamento ........................................................... 75
Algoritmo 20 - Protocolo de Depsito ............................................................... 76

xvi
ndice

Agradecimentos ............................................................................................. vii


Resumo ............................................................................................................. x
Abstract ............................................................................................................ xi
Notaes ........................................................................................................ xiii
Lista de Imagens ........................................................................................... xiv
Lista de Tabelas ............................................................................................. xv
Lista de Algoritmos ....................................................................................... xvi
ndice ............................................................................................................. xvii
1. Introduo .................................................................................................. 1
1.1 Contexto e Motivao............................................................................ 1
1.2 Caracterizao do Problema ................................................................. 2
1.3 Objetivo ................................................................................................. 3
1.4 Estrutura do Documento ....................................................................... 4
2. Fundamentao Matemtica ..................................................................... 6
2.1 Grupo .................................................................................................... 6
2.2 Corpos................................................................................................... 7
2.3 Curvas Elpticas .................................................................................... 8
2.4 Curvas Elpticas sobre os Reais ........................................................... 9
2.5 Curvas Elpticas sobre um Corpo Finito .............................................. 11
2.6 Problema do Logaritmo Discreto ......................................................... 12
2.7 Consideraes Finais .......................................................................... 13
3. Criptografia .............................................................................................. 14
3.1 Criptografia de Chave Pblica ............................................................. 14
3.2 Certificados e Assinaturas Digitais ...................................................... 15
3.3 Definio de Atacantes ....................................................................... 17
3.4 Ataques de Purotexto Escolhido - CPA ............................................... 19
3.5 Ataques de Cifrotexto Escolhido - CCA............................................... 19
3.6 Criptografia baseada em Curvas Elpticas - ECC ............................... 20
3.6.1 Formulao Bsica ....................................................................... 22
3.6.2 Parmetros de Domnio ................................................................ 23
3.7 Esquemas de Assinatura Digital e Criptografia baseada em Curvas
Elpticas ........................................................................................................ 24
3.7.1 Algoritmo de Assinatura Digital com Curvas Elpticas - ECDSA ... 24
3.7.2 Algoritmo de troca de chaves de Diffie-Hellman com Curvas
Elpticas ..................................................................................................... 26

xvii
3.7.3 Algoritmo de Massey-Omura com Curvas Elpticas...................... 27
3.7.4 Algoritmo de ElGamal com Curvas Elpticas ................................ 27
3.7.5 Sistema de Encriptao Integrado com Curvas Elpticas - ECIES 28
3.8 Consideraes de aplicabilidade de Curvas Elpticas ......................... 30
3.8.1 Validao de Chaves Pblicas e Curvas Elpticas........................ 30
3.8.2 Ataques sobre o esquema ............................................................ 30
3.9 Provas de Segurana .......................................................................... 31
3.9.1 Segurana do ECDSA .................................................................. 31
3.9.2 Segurana do ECIES.................................................................... 32
3.10 Consideraes na estrutura do ECC Utilizao de Ordem
Composta...................................................................................................... 34
3.11 Notas sobre Criptografia baseada em Curvas Elpticas e outros
esquemas ..................................................................................................... 35
3.11.1 RSA ........................................................................................... 35
3.11.2 Comparativo entre ECC e RSA ................................................. 36
3.11.3 Tamanho das Chaves ............................................................... 39
3.11.4 RFC Request for Comments .................................................. 40
3.12 Consideraes Finais ...................................................................... 41
4 Numerrio Eletrnico .............................................................................. 42
4.1 No rastreabilidade de e-Cash ............................................................ 43
4.2 Procedimentos sobre e-Cash .............................................................. 45
4.3 Double-spending ................................................................................. 46
4.4 e-Cash off-line ..................................................................................... 46
4.5 Premissas Bsicas sobre e-Cash Off-line ........................................... 47
4.6 Privacidade em um sistema e-Cash .................................................... 49
4.7 Atomicidade em um sistema e-Cash ................................................... 50
4.8 Sistema e-Cash off-line bsico ............................................................ 53
4.8.1 Protocolos Simplificados ............................................................... 54
4.9 e-Wallets ............................................................................................. 57
4.9.1 Assinaturas Cegas em e-Wallets .................................................. 59
4.9.2 ECML Linguagem de Modelagem de Comrcio Eletrnico ....... 60
4.10 Consideraes Finais ...................................................................... 60
5. Proposta de Esquema Criptogrfico para Numerrio Eletrnico off-line
61
5.1 Uso de ECC em sistemas e-Cash ....................................................... 61
5.2 Escopo da Proposta ............................................................................ 62
5.3 Estrutura Organizacional ..................................................................... 63
5.3.1 Protocolo de Criao de e-Coins .................................................. 64

xviii
5.3.2 Protocolo de Retirada de e-Coins ................................................. 65
5.3.3 Protocolo de Troca ....................................................................... 69
5.3.4 Protocolo de Pagamento .............................................................. 74
5.3.5 Protocolo de Depsito .................................................................. 76
5.4 Estrutura da e-Wallet........................................................................... 78
5.5 Trabalhos Relacionados...................................................................... 79
5.6 Consideraes Finais .......................................................................... 81
6. Concluses .............................................................................................. 83
6.1 Concluses ......................................................................................... 83
6.2 Contribuies ...................................................................................... 86
6.3 Trabalhos Futuros ............................................................................... 87
Referncias ..................................................................................................... 89

xix
1. Introduo

Este captulo tem como objetivo introduzir o trabalho no contexto da rea


de criptografia de dados, e sua aplicabilidade em conceitos de numerrio
eletrnico. Inicialmente, o contexto e a motivao deste trabalho so
apresentados mostrando a importncia da construo de um esquema
criptogrfico que fomente segurana para uma estrutura monetria eletrnica.
Em seguida, o problema tratado na dissertao caracterizado. Os trabalhos
relacionados so brevemente introduzidos, juntamente com as deficincias
para tratar o problema apresentado. Logo aps, os objetivos e as principais
contribuies deste trabalho so apresentadas. Por fim, detalhada a estrutura
da dissertao.

1.1 Contexto e Motivao

A maneira como o indivduo paga suas contas est mudando: segundo o


Banco Central, o nmero de cartes de crdito ultrapassa os 150 milhes de
unidades. Mais do que um nmero, esse valor reflete uma pr-disposio da
populao ao uso de alternativas de pagamento quela do uso do dinheiro real.
O uso do Internet Banking tem aceitao dos internautas em 90%. Inerente a
isso se pode debater sobre o uso de dinheiro eletrnico como uma via para
transferncias monetrias entre indivduos comuns, sem a necessidade de uma
instituio financeira como intermedirio.

A construo de uma nova cultura de pagamento de bens e servios j


est em andamento. Um exemplo dessa mudana que o mesmo pas que
introduziu o conceito de notas de papel em 1661, a Sucia, est gradualmente
substituindo suas transaes monetrias por meios eletrnicos, se tornando os
pioneiros na adoo desse meio para pagamentos. Essa nova estrutura
econmica reflete nos conceitos de privacidade pessoal assim como na
natureza e amplitude do uso indevido dessa tecnologia remetendo seriamente
a como so tratadas as punies sobre tais crimes. O ideal que um sistema
dessa proporo deva abranger no s os conceitos tecnolgicos, mas
tambm os impactos da mudana de parmetros que proporcionaria.

1
Chaum (1998) considera que o desenvolvimento de uma nova estrutura
monetria est intrinsecamente ligado a duas vertentes: uso devido sob
conhecimento de terceiros, isto , utilizar as unidades monetrias para
pagamentos dos mais variados e que tal seja monitorado e/ou auditado por
uma terceira entidade que validaria cada pagamento dando s partes um
parmetro de segurana. O segundo vrtice a idealizao de transaes
annimas que, de fato, garantem ao usurio sigilo completo e na mesma via
acarreta problemas como sonegao fiscal, mercado negro, falta de prova
sobre roubos e afins. Claro que, em contrapartida ao sigilo, a atribuio de
monitoramento das transaes a um terceiro causar uma profunda invaso de
privacidade na medida em que as transaes financeiras de uma pessoa
revelam muito do seu paradeiro, suas associaes e seu estilo de vida.

possvel levantar algumas propriedades fundamentais concernentes


ao desenvolvimento de um esquema de manipulao de unidades monetrias
eletrnicas: incapacidade de determinao de uma transao por uma terceira
parte; capacidade de prova de transao em casos especficos; possibilidade
de interromper pagamentos mediante certos parmetros. Baseado nessas
propriedades pode-se determinar que uma estrutura de dinheiro eletrnico
deva, a priori, se basear no sigilo das transaes, assim torna-se invivel um
esquema no qual seja possvel definir como, quando e onde o dinheiro seria
utilizado.

1.2 Caracterizao do Problema

A fundamental dificuldade relacionada implementao de um sistema


de dinheiro eletrnico ento identificar se uma transao monetria
verdadeira, isto , se um dado usurio no est recebendo uma unidade
monetria eletrnica falsa ou principalmente duplicada, levando em
considerao que o ponto inicial no pode ser identificado. O dinheiro real no
possui este problema j que produzir notas idnticas s reais na prtica
invivel.

Nesse contexto, o desenvolvimento de um esquema criptogrfico


fundamental em todo o processo de estruturao desse novo paradigma
econmico e a garantia dos usurios de que o sistema vlido s pode ser

2
alcanada com: Sigilo, Autenticidade e Integridade de todo o esquema. No que
se refere ao sigilo pode-se afirmar que uma troca de unidades monetrias entre
duas partes, dita sigilosa se, e somente se, a chance de um intruso obter os
dados e conseguir torn-los vlidos para si for desprezvel, ou seja, dados
parmetros de segurana, no possvel em tempo hbil e com esforo
computacional atual um atacante obter o dinheiro eletrnico trafegado e, ao
mesmo tempo, ser capaz de valid-lo ao ponto de poder utiliz-lo. Respeitar a
autenticidade dos dados garantir que nessa mesma troca de valores, o
remetente e o receptor sejam autnticos, ou seja, uma terceira entidade no
pode em tempo hbil conseguir receber uma quantidade de unidades
monetrias fazendo-se passar pelo receptor. Somado a isso, remetente e
receptor devem ter a capacidade de, em tempo hbil e com pequeno esforo
computacional poder garantir que o dinheiro eletrnico no fora adulterado na
sua transferncia, ou seja, garantir que h integridade dos dados.

Sigilo, autenticidade e integridade so alcanados com o uso de


sistemas criptogrficos de chave pblica, onde a combinao de um par de
chaves, uma secreta e uma pblica fomentam a criptogrfica assimtrica. Para
alcanar esses objetivos, alm da especificao de chaves pblicas
acrescentam-se as curvas elpticas como ferramenta fundamental para o
esquema criptogrfico.

Para fomentar todo o desenvolvimento de um esquema criptogrfico


baseado em curvas elpticas faz-se necessrio um estudo prvio no contexto
da criptografia assimtrica: conceitos de chaves pblicas, certificao digital e
assinatura digital.

1.3 Objetivo

Este trabalho tem por objetivo analisar os conceitos inerentes s curvas


elpticas bem como sua aplicabilidade na criptografia, alm de desenvolver um
esquema criptogrfico seguro usando esta teoria. No entanto, o principal foco
elaborar um protocolo de troca de dinheiro eletrnico seguro e eficiente, e criar
uma padronizao para o desenvolvimento de aplicativos para dispositivos
mveis que viabilizem esse novo modelo econmico.

3
O esquema proposto deve ento incorporar uma forma de garantir que
uma moeda eletrnica no possa ser duplicada e consequentemente usada
mais de uma vez. Uma vez que se garanta a unicidade dos valores eletrnicos,
tal esquema tem de viabilizar as rotinas de retirada, dispndio e depsito de
unidades monetrias eletrnicas, isto , um usurio deve ser capaz de, usando
o protocolo de Retirada, obter moedas eletrnicas e ser capaz de utiliz-las por
meio do protocolo de Dispndio. Toda a padronizao deve culminar no
protocolo de Depsito, com o qual o usurio capaz de efetuar o cmbio entre
dinheiro eletrnico e dinheiro real. Todo o processo, a priori, deve manter a
anonimidade dos usurios e das transaes.

1.4 Estrutura do Documento

Esta dissertao est organizada da seguinte maneira:


No captulo 2 so abordados os conceitos matemticos correlatos s
curvas elpticas como grupos, corpos, soma e multiplicao de
pontos de uma curva e o uso de grupos compostos;
O captulo 3 apresenta a criptografia e sua vertente baseada em
curvas elpticas em si, apresentando principais protocolos utilizados,
consideraes sobre esforo computacional e tamanho de chaves.
feita ainda uma anlise da segurana dos modelos de criptografia
apresentados. Neste captulo h uma descrio de esquemas
criptogrficos baseados na fatorao de inteiros, tal como o RSA, e
um comparativo entre o modelo de Rivest, Shamir e Adleman com os
modelos baseados em Curvas Elpticas, so apresentadas as RFC
(Request for Comments) que descrevem os padres para os
protocolos baseados em curvas elpticas;
O captulo 4 contm a descrio detalhada de numerrio eletrnico,
suas implicaes como redundncia de dados e conceitos de
anonimidade e no rastreabilidade;
No capitulo 5 apresentado um protocolo de criao, retirada,
dispndio e depsito de dinheiro eletrnico, baseado no conceito de
criptografia baseada em curvas elpticas. apresentada ainda uma

4
padronizao de implementao em dispositivos mveis de um
reservatrio de dinheiro eletrnico: e-Wallet.
O captulo 6 resume as contribuies desta dissertao e sugestes
para trabalhos futuros.

5
2. Fundamentao Matemtica

Miller (1985) e Koblitz (1987) sugeriram Curvas Elpticas como base na


segurana em esquemas criptogrficos pela sua aparentemente superior
possibilidade de se alcanar maior segurana e pelo uso de chaves
criptogrficas de tamanhos significativamente menores quando comparado a
outros modelos como o RSA. O modelo criptogrfico para numerrio eletrnico
apresentado aqui ser ambientado no uso de curvas elpticas. Neste captulo
so apresentados fundamentos matemticos importantes para a compreenso
dos conceitos em criptografia baseada em curvas elpticas e sua aplicabilidade
em dinheiro eletrnico.

2.1 Grupo

Um grupo um conjunto no vazio , dotado de uma operao binria


para gerao de um terceiro elemento dentro deste mesmo grupo. Uma
operao binria sobre o grupo G uma funo .

Algumas propriedades podem ser observadas em grupos:

Existe um elemento identidade: ;

Existe um elemento inverso: ;

Associatividade: ;

Fechamento: ;

Um grupo denominado abeliano quando existe a propriedade de


comutatividade em adio s demais:

Comutatividade: ;

Segundo Hungerford (1974) existem muitas formas comuns de anotao


para a imagem de uma funo binria, neste trabalho quando a operao
definida como adio ( ) diz-se ento que o grupo um grupo aditivo. Dessa
maneira o elemento identidade o zero e o inverso de um dado seria descrito
como . Define-se ento a multiplicao por um escalar por um valor inteiro

6
no negativo e como sendo a operao , onde a
soma realizada vezes.

Quando a mesma operao substituda pela multiplicao ( ) ento


se tm um grupo multiplicativo, onde o elemento identidade 1, e o inverso de
um dado escrito como . Uma das propriedades de um grupo
multiplicativo a exponenciao por um dado inteiro no negativo , dado que
, ento a operao , no qual a multiplicao realizada
n vezes.

Consideraes:

Dado um grupo finito, o nmero de elementos desse grupo


chamado ordem de ;

Um grupo dito cclico se existir um elemento tal que para


qualquer elemento existe um escalar onde . Um
elemento com essa propriedade dito gerador de ;

Se Existe um gerador g de para um grupo multiplicativo ento


;

Todo grupo cclico abeliano pois


;

Um mesmo grupo cclico pode conter mais de um gerador.

2.2 Corpos

Corpos so abstraes de um sistema de nmeros correlatos,


satisfazendo certas propriedades. Consistem em um conjunto dotado de duas
operaes bsicas: + e *, chamadas de adio e multiplicao, que satisfazem
as propriedades aritmticas seguir:

( , +) um grupo abeliano aditivo com identidade denotada por 0;

( \ {0}, .) um grupo abeliano multiplicativo com identidade


denotada por 1;

7
A distributividade expressa por:
.

Define-se caracterstica de um corpo , representado por char( ), ou


ainda , como sendo o nmero de vezes que a identidade multiplicativa de
deve ser adicionada a si para que o resultado seja igual identidade aditiva.
Caso essa aplicao nunca atingir o valor da identidade aditiva ento define-se
char( ) como 0. Seja ento , um corpo finito que possui q elementos, ento,
segundo Koblitz (1994) pode-se definir que o corpo finito no pode ter
caracterstica zero, devido a propriedade:

Se, adicionando a identidade multiplicativa a si mesma no corpo ,


nunca se chegar a 0, ento, pode-se dizer que tem caracterstica zero, neste
caso, possui um cpia de um corpo de nmeros racionais. Caso contrrio,
existe um nmero primo , tal que se somando identidade multiplicativa
vezes ser 0, e char( ), e nesse caso contm uma cpia de um corpo
, que chamado de corpo primo.

Decorre da definio:

Existem geradores multiplicativos em corpos finitos;

Todo corpo finito possui um gerador. Se um gerador de , ento


tambm um gerador se e somente se o . Em
particular, existe um total de geradores diferentes de ;

Existe e nico o corpo para cada nmero primo e cada inteiro


, a menos o isomorfismo.

2.3 Curvas Elpticas

Nesta seo sero mostrados os conceitos que circundam as curvas


elpticas, sua definio e a aritmtica sobre essas curvas. Para tanto define-se
K como um corpo. Por convenincia, pode-se definir K como sendo o conjunto
R dos nmeros reais, ou o conjunto Q dos nmeros racionais, ou como o
conjunto dos nmeros complexos C, ou ainda um corpo finito de
elementos.

8
Seja ento K um corpo de caracterstica diferente de 2, 3 e seja
(onde ) como sendo uma equao polinomial cbica sem
mltiplas razes, segue que: uma curva elptica sobre K um conjunto de
pontos onde tal que satisfaam a seguinte equao:

(1)

juntamente com um nico elemento definido como ponto no infinito.

O ponto no infinito define-se como o ponto que somado a qualquer ponto


P da curva resulta no prprio ponto P.

Se K um corpo de caracterstica 2, ento a curva elptica sobre K o


conjunto de pontos formados pelo ponto no infinito unido aos que satisfazem a
seguinte equao:

(2)

Se K um corpo de caracterstica 3, ento a curva elptica sobre K o


conjunto dos pontos formado tambm pelo ponto no infinito O unido aos pontos
que satisfazem a seguinte equao:

(3)

2.4 Curvas Elpticas sobre os Reais

Seja E uma curva elptica sobre o conjunto dos nmeros reais, e seja P
e Q dois pontos em E, define-se o inverso de P e a soma P + Q de acordo com
as seguintes premissas:

Se P o ponto no infinito, ento o inverso de P, denotado por P


como sendo o ponto no infinito O e P + Q sendo Q, neste caso, O
utilizado como identidade aditiva do grupo de pontos;
O inverso de P, ou P o ponto com a mesma coordenada no eixo
x, mas com coordenada no eixo y oposta (negativa) de P, isto , -(x,
y) = (x, -y);
Se P e Q tem coordenadas no eixo x diferentes, ento existe uma
reta que intercepta P e Q e um apenas mais um terceiro ponto R (a

9
menos que a reta seja tangente curva, o que foraria a existncia
de apenas de dois pontos, onde R = P ou R = Q). Isso posto, ento P
+ Q definido como R;
Se Q = -P (isto , Q tem a mesma coordenada no eixo x) ento
define-se P + Q como sendo o ponto no infinito;
Se P = Q, ento existe uma reta r tangente no ponto P, e R tomado
como o ponto de intercesso da reta com a curva, ento pode-se
definir que P + Q = P + P = 2P = -R.

Figura 1 - Soma de Pontos de um Curva Elptica

Pode-se ento provar que existe apenas um ponto que intercepta a


curva e os pontos P e Q, e a frmula para encontrar as coordenadas desse
terceiro ponto pode ser dada por:

Sejam , e as coordenadas dos pontos P, Q e P


+ Q respectivamente. possvel expressar os valores de e em funo
dos termos , , e . Considera-se para tanto como a

equao da reta que passa por P e Q. Tem-se ento que e

. Um ponto sobre a reta encontra-se na curva elptica


se e somente se (tomando a equao 1 como base).
Nesse caso, existe um ponto de interseo para cada raiz da equao cbica
.

Se existem duas razes conhecidas: e , e os pontos P e Q so


e respectivamente, como a soma das razes de um
polinmio em uma varivel igual ao menor coeficiente de segundo maior
alcance, conclui-se que a terceira raiz definida por: . Por
substituio direta, baseando-se em que P + Q = , tem-se:

10
(4)

Quando P = Q, a soma igual a 2P, por isso chamado de duplicao de


P e, de forma similar, derivando em relao a se obtm implicitamente

, ento:

(5)

2.5 Curvas Elpticas sobre um Corpo Finito

Clculos realizados sobre nmeros reais so lentos e imprecisos, devido


ao erro de arredondamento, portanto, aplicaes em criptografia necessitam de
clculos mais precisos e geis. Ento devido a necessidade de finitude dos
conjuntos para sua aplicabilidade, faz-se necessrio a definio de um escopo
de curvas elpticas sobre corpos finitos. Ento seja um corpo finito de
elementos e E uma curva elptica definida sobre esse corpo . Se p = 2 ou 3,
ento E dada nas formas (1) e (2) respectivamente.
O corpo definido pelos nmeros inteiros de 0 a p - 1, e todas as
operaes so finalizadas calculando-se a funo mdulo por p. Uma curva
elptica sobre o corpo definida pelo conjunto de pontos que
satisfazem a equao:
(6)
onde so constantes que pertencem ao corpo , assim como as variveis
x e y.
Se o polinmio no contm fatores repetidos ou de forma
equivalente se + 27 diferente de zero, ento a curva elptica

11
pode ser usada para formar um grupo. O grupo formado
pelos pontos definidos pela curva elptica juntamente com o ponto no infinito, .
O nmero de pontos de uma curva elptica E, ou nmero de solues da
equao da curva mais o ponto no infinito, chamado de ordem da curva e
denotado por #E. No mbito dos corpos finitos , o Teorema de Hasse
determina que a ordem da curva satisfaz:
(7)
Para aplicaes em criptograa, o ideal que a ordem de uma curva
seja prima, o que nem sempre possvel. importante ainda evitar certos tipos
particulares de curvas: as supersingulares e as anmalas. Uma curva elptica E
sobre um corpo finito dita supersingular se, e somente se, char(F) | t, onde
#E = p + 1 t, onde t a inclinao da reta secante a curva. Uma curva elptica
E sobre um corpo finito dita anmala se #E = p.

2.6 Problema do Logaritmo Discreto

O problema do logaritmo discreto, ou PLD, pode ser definido como: Seja


um grupo cclico de ordem q, ento existe um gerador tal que { , ,
... } = . Equivalentemente, para todo existe um nico tal
que . Ento dito logaritmo discreto de com respeito a e se
escreve . Note que se para algum inteiro x arbitrrio, ento
.

O problema do logaritmo discreto no grupo cclico com um dado


gerador a computao de dado um elemento aleatrio como
entrada. Katz (2007) define ainda um algoritmo L de tempo polinomial que,
sobre uma entrada de tamanho n, retorna um grupo cclico , sua ordem , e
um gerador . Pode-se requerer ainda que as operaes sobre o grupo
sejam computveis eficientemente. Conclui-se ento que o problema do
logaritmo discreto difcil relativo ao algoritmo L se, para todo algoritmo
probabilstico de tempo polinomial, a probabilidade de encontrar o valor de
desprezvel.

12
2.7 Consideraes Finais

Nesse captulo foram introduzidos os conceitos matemticos bsicos


para o entendimento do restante desse trabalho. Foi abordada uma viso geral
sobre: grupos, corpos, curvas elpticas e o problema do logaritmo discreto.

13
3. Criptografia

A troca de mensagens secretas inerente comunicao em si, desde


os tempos mais remotos. Outrora se definia criptografia como a arte de
escrever e resolver cdigos. A criptografia moderna vai, alm disso.
Criptografia a cincia que estuda tcnicas para garantir segurana a
informaes digitais, transaes, e computao distribuda. Nos dias atuais,
criptografia est em toda parte, fazendo parte de cada dado gravado em
perifricos, em pacotes que trafegam em uma rede de computadores, em
documentos oficiais, em projetos confidenciais. Este captulo ir desconsiderar
os meandros da criptografia moderna, partir por tanto da criptografia de chave
pblica que o cerne para a concepo de esquemas criptogrficos atuais.

3.1 Criptografia de Chave Pblica

A idealizao de um esquema de criptografia de chave pblica foi


propiciada pelo artigo de Diffie-Hellman (1976). Define-se ento um esquema
desse tipo com um par de chaves, sendo uma pblica e uma privada. A chave
pblica usada pelo remetente da mensagem para encript-la; o destinatrio
usa a chave privada para decriptar o texto encriptado. Por conveno, ser
usado o termo purotexto (do ingls plaintext) para determinar uma mensagem
que ir passar por um processo de cifragem, e o termo cifrotexto (do ingls
ciphertext) ser usado para definir o resultado de cifragem de uma mensagem.

Define-se ento por esquema de criptografia de chave pblica a tupla


de algoritmos de tempo polinomial probabilstico (Gen, Enc, Dec) tal que:

O algoritmo de gerao de chaves Gen toma como entrada um


parmetro de segurana de tamanho n e retorna um par de chaves
(pk, sk) que so respectivamente a chave pblica e a chave privada
do esquema;

O algoritmo de encriptao Enc tem como entrada a chave pblica pk


e uma mensagem m de um conjunto de purotextos. A sada do
algoritmo um cifrotexto c dado por c Encpk(m).

14
O terceiro algoritmo, de decriptao Dec, recebe uma chave privada
sk e um cifrotexto c, e retorna uma mensagem m ou falso caso o
algoritmo falhe na decifragem. O algoritmo de decriptao Dec dito
determinstico j que m:=Decsk(c) em qualquer tempo.

Alguns resultados so decorrentes da definio do esquema de chave


pblica:

Os algoritmos de gerao de chaves, de encriptao e decriptao


so executados em tempo polinomial no tamanho de suas entradas,
e por isso por converso, determina-se que pk e sk tm ambos
tamanho n.

Os algoritmos de gerao de chaves so probabilsticos;

Figura 2 - Esquema Criptogrfico de Chave Pblica

3.2 Certificados e Assinaturas Digitais

Criptografia de chave pblica permite ento que duas partes troquem


mensagens secretamente por meio de um canal de comunicao inseguro,
porm sem a garantia de autenticidade das partes, ou seja, quando um usurio
A informa sua chave pblica, nada garante que a chave pblica realmente

15
daquele usurio A. Essa ausncia de autenticidade possibilita ataques como
homem-no-meio, quando um impostor se coloca no meio da comunicao
interceptando as mensagens alterando-as.

Esse tipo de ataque se caracteriza porque chaves pblicas no esto a


priori vinculadas s identidades dos usurios. A soluo para esse problema
incluso de uma terceira parte, uma entidade confivel por todas as partes.
Essa entidade mantm a representao da identidade do usurio, sua
correspondente chave pblica e um perodo de validade, essa associao
dita certificado digital. Um certificado digital constitudo de:

Informaes nicas do usurio certificado (nome, CPF/CNPJ, etc.)

A chave pblica referente ao usurio;

O perodo de validade;

Informaes da entidade certificadora;

Assinaturas das entidades para garantir a autenticidade do


certificado.

Os processos de criao, armazenamento e revogao de certificados


digitais dizem respeito s entidades certificadoras, tais entidades devem estar
inseridas em uma infraestrutura de chaves pblicas (ICP).

Assinaturas digitais uma decorrncia natural de sistemas de chave


pblica. Esquemas de assinatura digital permitem que um usurio A, de posse
de sua chave privada, assine uma mensagem M de tal forma que um outro
usurio B, de posse da chave pblica, possa verificar que aquela mensagem
originou-se de A e que no tenha sido modificada de alguma forma. Portanto,
esquemas de assinatura digital garantem autenticidade e integridade de um
determinado dado.

Assinaturas digitais so de certa forma o inverso da encriptao de


chave pblica, j que para assinar um usurio gera um dado s a partir da
mensagem e da chave privada e a verificao (e no decriptao) feita

16
usando a chave pblica. Esquemas de assinatura digital sero revistos em
tpicos posteriores.

3.3 Definio de Atacantes

A criptografia tem por objetivo mascarar dados para trafeg-los por


canais inseguros. Chama-se ento de criptoanalista o especialista em
criptografia que, dados esquemas de criptografia, tentam determinar
informaes sobre o purotexto, cifrotexto ou chaves de criptografia envolvidas.
Ento, um atacante, ou adversrio um algoritmo essencialmente
probabilstico de tempo polinomial que tem intuito de extrair tais informaes
para um fim qualquer.

Um requisito em projetos de criptossistemas definir o nvel de


segurana, bem como qual a amplitude do esquema. Antes de definir as provas
de segurana faz-se necessrio introduzir conceitos que caracterizam os
diversos tipos de ataques:

Ataque sobre o cifrotexto: Este o mais bsico tipo de atacante e


refere-se ao cenrio no qual o adversrio tem a capacidade apenas
de observar o cifrotexto, ou um conjunto deles, e tenta determinar a
mensagem original;

Ataque com purotexto conhecido: Neste tipo de ataque, dado um


cifrotexto alvo, o adversrio tem ento acesso a um ou mais pares de
purotexto e cifrotexto encriptados com uma mesma chave do
cifrotexto alvo. O objetivo ento determinar o purotexto referente ao
cifrotexto alvo;

Ataque sobre purotexto escolhido: Aqui, o adversrio capaz de


obter a encriptao de purotextos escolhidos. Em seguida, o atacante
tenta determinar o purotexto que fora encriptado em algum outro
cifrotexto;

Ataque com cifrotexto escolhido: Neste caso, o atacante tem a


capacidade de obter a decriptao de textos encriptados a sua
escolha. O adversrio almeja determinar um purotexto que fora

17
encriptado em algum outro cifrotexto, porm importante frisar que
supe-se que o atacante no pode obter a decriptao deste
cifrotexto diretamente.

Os ataques de purotexto escolhido e cifrotexto escolhido sero vistos em


detalhes nos tpicos 3.4 e 3.5.

Os ataques mostrados podem ser separados em passivos e ativos. Um


ataque dito passivo se os adversrios apenas obtm informaes e com elas
tentam determinar o purotexto, este o caso dos dois ataques iniciais. No caso
de ataques ativos, um adversrio pode, adaptativamente, inferir
questionamentos a respeito de encriptaes ou decriptaes a sua escolha,
este o caso dos dois ltimos ataques.

Os ataques foram organizados por ordem de severidade, desta forma,


os ataques ativos so ditos mais complexos e muito mais perigosos. Bellare
(1998), baseado nos objetivos de ataque e os modelos dos adversrios, define
os dois objetivos e trs modelos que seguem:

IND Incapacidade de Distino: o adversrio seleciona um par de


mensagens e recebe a criptografia c de uma delas; incapacidade de distino
ento a impossibilidade do adversrio distinguir qual das mensagens deu
origem ao cifrotexto gerado.

NM No Maleabilidade: este objetivo define a incapacidade do


adversrio obter dois cifrotextos distintos, tal que os purotextos equivalentes
tenham alguma equivalncia.

Modelo CPA: Ataque de purotexto escolhido;

Modelo CCA1: Ataque de cifrotexto escolhido;

Modelo CCA2: Semelhante ao Modelo CCA1, porm o adversrio pode


solicitar decriptaes de acordo com decriptaes anteriores, ou seja, solicitar
decriptaes de forma adaptativa.

18
3.4 Ataques de Purotexto Escolhido - CPA

O ataque de purotexto escolhido (do ingls: Chosen-Plaintext Attack


CPA) consiste em um cenrio em que um atacante capaz de questionar o
esquema solicitando encriptao de mltiplas mensagens a sua escolha. Este
atacante tem acesso ao algoritmo de encriptao (Katz e Lindell, 2007) que
encripta mensagens usando uma chave secreta k, desconhecida pelo atacante.
A definio de segurana requer que o atacante no deva ser capaz de
distinguir a encriptao de duas mensagens arbitrrias mesmo que tenha
acesso ao algoritmo de encriptao.

Um esquema de encriptao determinstico i.e., aquele em que, dadas


duas mensagens m1 e m2 e o resultado da encriptao sendo c1 e c2, se m1 =
m2 ento c1 = c2 no pode ser seguro sob um ataque CPA, j que: se o
adversrio fornece uma mensagem (m1, m2) ao orculo e obtm apenas um
cifrotexto c, ele capaz de determinar, enviando m1 e m2 separadamente e
comparar os cifrotextos recebidos e determinar com probabilidade igual a 1
qual mensagem gerou cada cifrotexto. Em contrapartida, um esquema CPA
seguro se o mesmo for probabilstico, isto , o esquema deve usar uma chave
aleatria como parte do processo, assim, uma mesma mensagem gera
encriptaes diferentes pois as chaves geradas so diferentes.

Uma evoluo natural desse tipo de ataque a adaptao da escolha


dos purotextos de acordo com as respostas do orculo de encriptao, isto , o
adversrio constri interativamente uma srie de purotextos para serem
submetidos ao orculo, e dinamicamente altera as consultas baseado na
informao retornada anteriormente do tal orculo.

3.5 Ataques de Cifrotexto Escolhido - CCA

O ataque de cifrotexto escolhido (do ingls: Chosen-Ciphertext Attack


CCA) tido como o mais agressivo deles (Katz e Lindell, 2007), nele o
adversrio capaz de decriptar mensagens a sua escolha. Para formalizar o
ataque, utiliza-se do conceito de orculo de decriptao. Um esquema de
encriptao dito indistinguvel sob o CCA se, para todo adversrio de tempo
polinomial probabilstico, a chance de o cifrotexto ser decriptado corretamente

19
em tempo hbil insignificante. Claro que o adversrio est restrito ao orculo
de decriptao no que se refere a enviar cifrotextos diferentes do cifrotexto que
est sendo atacado.

Assim como o ataque de purotexto escolhido, o ataque de cifrotexto


escolhido tem sua verso adaptativa, na qual o atacante envia um nmero de
cifrotextos a serem decriptados, e usa as respostas desse orculo de
decriptao para selecionar os novos cifrotextos a serem decriptados. O
objetivo o mesmo: gradualmente revelar informaes sobre a mensagem
encriptada ou sobre a chave de encriptao em si.

3.6 Criptografia baseada em Curvas Elpticas - ECC

Inicia-se a construo de criptografia baseada em curvas elpticas, ECC


(do ingls: Elliptic Curves Cryptography) tomando-se um grupo abeliano
finito um grupo multiplicativo de um corpo finito pode-se ento iniciar a
construo de criptossistemas de chave pblica a partir dele. A proposta a
construo de um criptossistema fomentado na dificuldade de resoluo do
problema do logaritmo discreto sobre pontos da curva elptica. Para introduzir
um algoritmo eficiente utilizando curvas elpticas alguns pontos devem ser
abordados.

Necessita-se definir multiplicao de pontos:

Definio 1. Seja E uma curva sobre um corpo finito e utilizando das


equaes definidas sobre corpos finitos ento define-se multiplicao de
pontos P e Q sobre a curva E denotado por PQ e pode ser computada em
O(log k log q) operaes binrias.

A converso de purotexto dada por uma codificao sobre os pontos


de uma dada curva elptica E, definida sobre o corpo . Dado um purotexto m,
pode-se construir uma funo que mapeia m em um ponto Pm. Existe ento um
algoritmo determinstico de tempo no polinomial capaz de determinar um
grande nmero de pontos em uma curva elptica arbitrria. Uma questo
importante a esse respeito que no suficiente um gerador aleatrio de
pontos sobre a curva para mapear m em um ponto Pm. Assim, para mapear um

20
grande nmero de mensagens m necessita-se de uma forma sistemtica de
gerar pontos relacionados a m. Koblitz prope, por exemplo, um mapeamento
da coordenada x de cada ponto relacionando-se com m.

Outra proposta dada por: seja k um nmero inteiro suficientemente


grande, seja ainda mi uma unidade da mensagem M a ser convertida. Supe-
se ainda que, escolhido o corpo onde p > Mk, ento se escreve cada mi de 1
at Mk na forma de mk + j, onde 1 j k, e inserindo uma a uma das
correspondncia entre tais inteiros e os elementos do corpo. Assim, dada uma
mensagem m, para cada j = 1, 2, ..., k, pode-se obter um elemento
correspondendo a mk + j. Para um dado x, computa-se o lado direito da
equao

(8)

encontrando-se a raiz quadrada da equao de f(x) usando o mtodo do


residual quadrtico apresentado por Koblitz (2004). Caso seja encontrado um y
tal que y = f(x), toma-se Pm = (x, y). Se possvel verificar que f(x) seja no
quadrtica, ento incrementa-se j em 1 e tenta-se novamente com o x
correspondente. Dado que x seja determinado para f(x) quadrtica antes que j
alcance o tamanho de k, pode-se recuperar m de um ponto (x, y) fazendo

, onde z o inteiro que corresponde a x sobre a correspondncia

um-a-um entre inteiros e elementos do corpo.

O problema do logaritmo discreto sobre curvas elpticas (ECDHP) tem


papel fundamental na construo de criptossistemas proposto nesse trabalho.
Para sua definio segue que:

Definio 2. Seja E uma curva elptica sobre o corpo e B um ponto nesta


curva, ento o problema do logaritmo discreto sobre essa curva : dado um
ponto , encontrar um inteiro tal que xB = P. Este problema
intratvel computacionalmente, mesmo que tal nmero inteiro x exista.

21
3.6.1 Formulao Bsica

Uma estrutura criptogrfica baseada em curvas elpticas mapeia o


purotexto em pontos de uma curva elptica pr-estabelecida. O algoritmo segue
com a parametrizao desses pontos com a chave do usurio obtendo assim
um segundo conjunto de pontos representativo do cifrotexto. O processo de
decriptao dado pela converso desses pontos nos originais com o auxlio
das chaves aplicando-se assim o mapeamento inverso (Castellanos, 2004).

Em outras palavras, se um usurio A deseja enviar uma mensagem M


para o usurio B, dada uma curva E e um conjunto finito de pontos dados pelo
corpo F que envolva aritmtica modular, tm-se (Goya, 2006):

Um valor primo p grande o suficiente, tido como ordem;

G, um ponto gerador, pertencente curva, onde n G o ponto no


infinito;

nA e nB, correspondente s chaves privadas de A e B;

PA e PB (pontos pertencentes curva) correspondentes s chaves


pblicas de A e B.

Seja C o conjunto de pontos para o qual a mensagem M foi mapeada, o


algoritmo segue:

1. Usurio A seleciona um inteiro I aleatoriamente;

2. Computam-se, a partir de I, G, PB e para cada Pmi (cada ponto do


conjunto C), um conjunto de pares de pontos P1i e P2i onde P1i = (IG)
e P2i = (Pmi + kPB);

3. O usurio A transmite a mensagem como sendo o conjunto de pares


gerados pelo passo 2, tal como segue Cifrotexto = [(P11, P21), (P12,
P22),... (P1n, P2n)].

Note que P11 = P12 = ... = P1n = IG, assim o cifrotexto pode ser
reorganizado de tal forma que seu tamanho seja reduzido n/2 -1 vezes, onde n
o tamanho da sada do passo 3.

22
O ponto interessante na decriptao que o usurio B pode recuperar
todo o conjunto C, mesmo desconhecendo o inteiro I, segundo os seguintes
procedimentos:

1. O usurio B tem cincia da seguinte equao: IPB = I(nB)G, pois, por


se tratar de um grupo abeliano, PB = (nB)G, assim P11(nB) = (IG)(nB) =
I(PB);

2. Pelo passo 1 pode-se deduzir cada ponto do conjunto C fazendo: P 2i


- P11(nB) = (P2i + I(PB)) - I(PB) = (P2i +[(IG)nB]) ([(IG)nB]) = P2i.

Dado o conjunto C dos pontos mapeados, o usurio B pode realizar o


mapeamento inverso obtendo assim M.

3.6.2 Parmetros de Domnio

Os parmetros de domnio so os atributos usados para os esquemas


de criptografia. Para a ECC os parmetros so definidos por uma curva E
sobre um corpo finito , um ponto base P E( ), e sua ordem n. Esta tupla
melhor descrita como D = (q, F, S, a, b, P, n, h), onde:

p a ordem do corpo;

F um corpo utilizado no criptossistema;

S definido como uma semente gerada de forma pseudoaleatria,


que permite a seleo uniformemente aleatria de curvas elpticas;

Os dois coeficientes a, b definem a equao de curva elptica E


sobre o corpo ;

Dois elementos x e y definem o ponto P E( ). P tem ordem prima e


chamado de ponto base;

n a ordem de P;

O cofator h = #E( )/n.

23
3.7 Esquemas de Assinatura Digital e Criptografia baseada em Curvas
Elpticas

Um esquema criptogrfico constitudo de pelo menos trs algoritmos:


Encriptao, Decriptao e Assinatura. Os dois primeiros tm descrio bvia,
pois so utilizados para encriptar e decriptar mensagens. Algoritmos de
assinatura digital so utilizados para garantir integridade e autenticidade de
uma dada cifragem. A seguir so descritos alguns algoritmos baseados em
curvas elpticas amplamente discutidos na literatura.

3.7.1 Algoritmo de Assinatura Digital com Curvas Elpticas - ECDSA

Esquemas de assinatura digital provm uma autenticao do purotexto,


integridade dos dados e o no repdio. Assinaturas digitais so usadas por
entidades certificadoras para assinar certificados e associar um usurio a uma
chave pblica.

Um esquema de assinatura digital constitudo da tupla de algoritmos


Sign = (D, G, S, V), onde D um algoritmo de gerao de parmetros de
domnio tais como a ordem do corpo e definies da curva. G, um algoritmo
capaz de gerar um par de chaves (P, K). O algoritmo de gerao da assinatura
dado por S, que, dada uma chave K (que, por definio, considerada
privada) e uma mensagem m, se produz uma assinatura s. O algoritmo V tem
como entrada uma assinatura s, e uma chave pblica P e a mensagem m, e
retorna um estado, verdadeiro ou falso, dependendo da validade ou no da
assinatura.

O ECDSA um algoritmo anlogo ao Algoritmo de Assinatura Digital


(DSA) utilizando curvas elpticas. No algoritmo original seleciona-se uma
funo hash H que retorna uma palavra de m bits. definido um nmero primo
q, tal que o q > m e um primo p de n bits tal que:

q divide p-1;

O problema do logaritmo discreto no corpo de ordem q


intratvel.

24
Encontra-se ento um gerador do corpo, isso feito pela gerao
aleatria de elementos e computando-se: at se
obter o valor de que no seja igual a 1. Normalmente, com o DAS, usa-se a
funo hash SHA-1, embora se possa selecionar SHA-256, SHA-384 e SHA-
512 (BLAKE e SEROUSSI 2004). A tupla (H, p, q, g) denominada conjunto de
parmetros de domnio para o criptossistema, e seus valores so
compartilhados.

Para o uso o DAS define-se ainda f:

onde . Essa funo usada para mapear o grupo de elementos inteiros


modulo q e chamada de funo de converso.

Algoritmo 1 - Assinatura Digital - DAS


Entrada: Mensagem m e chave privada x.
Sada: Assinatura (r, s) da mensagem m.

1. Escolhe-se aleatoriamente k.
2. t gk (mod p).
3. r f(t).
4. Se r = 0 ento retorne etapa 1.
5. e H(m).
6. s (e + xr)/k (mod q)
7. Se s = 0 ento retorne etapa 1.
8. Retorne (r, s).

A verificao dada por:

Algoritmo 2 - Verificao de Assinatura Digital


Entrada: Mensagem m, chave pblica y e assinatura (r, s).
Sada: Verdadeiro ou Falso.

1. Se r e s {1, ..., q - 1} retorne falso.


2. e H(m).
3. x1 e/s (mod q), x2 r/s (mod q).
4. t gx1yx2 (mod p).
5. Se r = f(t) ento retorne Verdadeiro.

No ECDSA, os parmetros de domnio so dados por (H, F, E, q, R),


onde H a funo hash, E a curva elptica sobre o corpo finito , e R o

25
ponto raiz da curva de ordem prima q. De posse dos parmetros possvel
determinar o cofator h como sendo:

(9)

Segue o algoritmo de gerao da assinatura:

Algoritmo 3 - Assinatura Digital baseado em Curvas Elpticas - ECDSA


Entrada: Mensagem m, chave privada x.
Sada: Assinatura (r, s) da mensagem m.

1. Escolhe-se um inteiro k aleatoriamente.


2. T [k]R.
3. r f(T).
4. Se r = 0 ento retorne etapa 1.
5. e H(m).
6. s (e + xr)/k (mod q).
7. Se s = 0 ento retorne etapa 1.
8. Retorne (r, s).

Segue o algoritmo de verificao de assinatura:

Algoritmo 4 - Verificao de Assinatura Digital baseado em Curvas Elpticas


Entrada: Mensagem m, chave pblica Y e assinatura (r, s)
Sada: Verdadeiro ou Falso.

1. Se r e s {1, ..., q-1} retorne falso.


2. e H(m).
3. x1 e/s (mod q), x2 r/s (mod q).
4. T [x1]R + [x2]Y.
5. Se e somente se r = f(T) retorne verdadeiro.

3.7.2 Algoritmo de troca de chaves de Diffie-Hellman com Curvas Elpticas

Supondo dois interlocutores, A e B, tendo de trocar mensagens atravs


de um canal no seguro. O processo inicia-se com a escolha pblica de um
corpo e uma curva elptica E definida sobre esse corpo. As chaves so
definidas como pontos aleatrios sobre a curva. Deve-se escolher ainda um
ponto para ser a raiz do algoritmo. R ento desempenhar um papel de
gerador no corpo finito. Define-se ento o conjunto de parmetros do domnio
(F, E, p, H, R).

26
Para gerar as chaves, A escolhe aleatoriamente um inteiro de ordem
de magnitude p, e o mantm secreto. A computa ento , e o torna
pblico. B faz o mesmo: escolhe aleatoriamente um inteiro e publica .
A chave secreta ento computada como: , que computada por
ambos interlocutores.

Dado e , o problema de recuperar chamado de Problema de


Diffie-Hellman sobre Curvas Elpticas (do ingls ECDHP). fcil determinar
que, se for possvel resolver o problema do logaritmo discreto sobre curvas
elpticas (ECDLP) ento possvel resolver o ECDHP.

3.7.3 Algoritmo de Massey-Omura com Curvas Elpticas

Em um escopo de um corpo finito, existe um criptossistema de chave


pblica utilizado para transmitir unidades da mensagem, denotadas por m, que,
j so convertidos em pontos Pm para alguma pr-determinada curva elptica E.
A analogia ao algoritmo de Massey-Omura inicia com cada usurio do
criptossistema escolhendo, de forma secreta e aleatoriamente, um inteiro
entre 1 e N (nmero de pontos computados sobre E) tal que o maior divisor
comum entre e N seja igual a 1, e usando o Algoritmo Euclideano (Ustinov,
2008) computa-se seu inverso . Assim, se A deseja enviar o
ponto Pm para B, ento primeiro deve enviar o ponto que retorna para o
ponto A: (subscritos A e B delegam propriedades de a A e B,
respectivamente).

No ponto A, faz-se uma multiplicao de por . Como NPm = O


e , determinado o ponto que enviado ao interlocutor B
que por sua vez pode ler a mensagem ao multiplicar o ponto por .

3.7.4 Algoritmo de ElGamal com Curvas Elpticas

Usando os conceitos de curvas elpticas em um sistema de criptografia


anlogo ao sistema ElGamal, uma curva elptica e um ponto P na curva so
escolhidos e tornados pblicos. Se um interlocutor A deseja se comunicar com
B, ento A escolhe um inteiro a e torna pblico o ponto aP. A mantm o

27
nmero a secreto. Assume-se que a mensagem composta de pares
ordenados de elementos num grupo.

Para transmitir a mensagem (m1, m2) para A, Bob escolhe um inteiro


aleatrio k e calcula os pontos kP e akP = (xk, yk). Um valor k diferente deve
ser adotado para cada nova mensagem. Ento B envia para A o ponto kP e o
campo de elementos (m1, m2) = (M1xk, M2yk). A mensagem original (M1, M2)
pode ser decifrada por A usando sua chave secreta a, atravs do clculo de
akP a fim de obter os pontos xk e yk. A mensagem cifrada pode ser
decriptada atravs da diviso, obtendo M1 = m1/xk e M2 = m2/yk.

3.7.5 Sistema de Encriptao Integrado com Curvas Elpticas - ECIES

O sistema de encriptao integrado baseado em curvas elpticas (do


ingls ECIES) um algoritmo padro baseado em curvas elpticas, dito
integrado porque mescla o uso de chaves pblicas e chaves privadas de
sesso usadas em cifragens simtricas. O esquema baseado no protocolo
DHAES de Abdalla, Bellare e Rogaway (1998).

O ECIES um criptossistema de chave pblica, que assim como o


ECDSA, assume a existncia de um conjunto de parmetros de domnio (F, E,
q, h, R), adicionando a esse conjunto a escolha de funes simtricas de
encriptao e decriptao, denotados aqui por Enck e Deck. Diferindo do
convencional, existem dois tipos especiais de funes hash:

Cdigo de autenticao de mensagem (MACk) tal que:

MACk : {0, 1}n {0, 1}* {0, 1}m.

Funo de derivao de chave KD(T, l), onde l dado pelo


comprimento combinado da chave necessria para o MAC e da
chave necessria para a funo de criptografia simtrica.

KD : E N {0, 1}*
A funo de determinao de chaves atua exatamente como uma funo
de disperso, exceto que o comprimento de sada (o segundo parmetro) pode
ser bastante grande. A sada usada como uma chave para criptografar uma
mensagem, portanto, se a chave for utilizada em um algoritmo de criptografia

28
baseado no XOR a sada deve ser to longa quanto a mensagem a ser
criptografada.

O protocolo ECIES transporta as chaves de acordo com o protocolo de


troca de chaves de Diffie-Hellman. Aps isso atua o mtodo de criptografia
simtrica para as mensagens reais. Em seguida supe-se que o comprimento
total necessrio para a chave MAC dada por l. O receptor assume que o par
de chaves pblica e privada (Y, x) pode ser dado por:

Y = [x]G.

O algoritmo de encriptao baseia-se que existe uma chave pblica


computada por: Y = [x]R e mostrado a seguir:

Algoritmo 5 - Encriptao ECIES


Entrada: Mensagem m, chave pblica Y.
Sada: Texto cifrado (U, c, r)

1. Escolhe-se um inteiro k aleatoriamente.


2. U [k]R.
3. T [k]Y.
4. (k1 || k2) KD(T, l).
5. c Enck1(m).
6. r MACk2(c).
7. Retorne (U, c, r).

A saber: (k1 || k2) representa a gerao em paralelo das duas chaves k1 e


k2; U necessrio para garantir o transporte da chave T, c o resultado da
encriptao propriamente dito e r usado para evitar ataques adaptativos de
cifrotexto escolhido.

Algoritmo 6 - Decriptao ECIES


Entrada: Cifrotexto (U, c, r) e a chave privada x.
Sada: A mensagem original m, ou um erro caso o cifrotexto seja invlido.

1. T [x]U.
2. (k1 || k2) KD(T, l).
3. m Deck1(c).
4. Se r MACk2 ento retorne erro.
5. Retorne m.

Para este trabalho sero utilizados o ECDSA e o ECIES como


algoritmos padres de assinatura e encriptao de dados.

29
3.8 Consideraes de aplicabilidade de Curvas Elpticas

3.8.1 Validao de Chaves Pblicas e Curvas Elpticas

Ao receber uma chave pblica, se existir um conjunto de certificados


digitais ou em sistema de troca de chaves necessrio se ter certeza de que a
chave realmente um ponto genuno de uma ordem correta de uma dada
curva. Define-se ento um algoritmo de verificao de chaves como segue:

Algoritmo 7 - Validao de Chaves Pblicas


Entrada: O conjunto de parmetros do domnio (F, E, q, h, R) e a chave pblica Y.
Sada: Verdadeiro ou falso.

1. Se Y E(Fq) ento retorne falso.


2. Se Y o ponto no infinito ento retorne falso.
3. Retorne verdadeiro.

Assim como as chaves pblicas necessitam ser validadas, existe


tambm a necessidade da validao da curva elptica no que tange a sua
adequao ao uso no esquema criptogrfico. O seguinte algoritmo checa se o
conjunto de parmetros de domnio vlido:

Algoritmo 8 - Validao de Curvas Elpticas


Entrada: O conjunto de parmetros de domnio (F, E, q, h, R).
Sada: Verdadeiro ou falso.

1. l #F = pn.
2. Checar #E(F) = h.q, pela gerao aleatria de pontos e verificao se sua
ordem h, q, ou h.q.
3. Checar se q primo.
4. Checar se q > 2160 para assegurar parmetros de segurana.
5. Checar se q p para assegurar ataques a curvas anmalas.
6. Checar se lt 1 (mod q) para todo t 20 para assegurar parmetros de
segurana.
7. Checar se n primo para assegurar parmetros de segurana.
8. Checar se F verdadeiro para curva e tem ordem q.

3.8.2 Ataques sobre o esquema

Um dos ataques sobre esquemas criptogrficos baseados no problema


do logaritmo discreto o ataque por fora bruta, buscando exaustivamente por
um par de valores (k, kP) que satisfaam a equao kP = Q. Este algoritmo
dito genrico e funciona em tempo exponencial (2k). Algoritmos como o de

30
Shanks, Pohlig e Hellman propem resolver o problema do logaritmo discreto
sem fazer uso da natureza do grupo subjacente e todos eles funcionam
essencialmente em tempo exponencial.

Existem tcnicas, porm, que usam da estrutura do corpo onde o


problema foi definido, resultando variavelmente em tempo de menor
complexidade algortmica. Destaca-se aqui o clculo de ndices, aplicvel no
problema sobre o grupo multiplicativo de um corpo finito alcanando uma

complexidade subexponencial, , mostrando-se muito mais eficiente

do que os algoritmos genricos.

Dito isso, a grande vantagem sobre o uso do ECC a at ento


intratabilidade do problema do logaritmo discreto sobre a maioria dos grupos
elpticos. Existem, porm, ataques dedicados a criptossistemas de curvas
elpticas. A seguir so descritos alguns desses ataques:

Menezes, Okamoto e Vanstone (1993) propuseram um ataque ao


problema do logaritmo discreto baseado na reduo do clculo do logaritmo
discreto sobre curvas elpticas ao clculo do logaritmo discreto em um grupo
multiplicativo de um corpo finito, onde existem algoritmos subexponenciais.
Porm a reduo acarreta uma srie de complicaes, uma delas o aumento
da dificuldade de resolver o problema, exceto em curvas supersingulares, onde
o ponto raiz (R) substancialmente pequeno o que facilita o clculo do
logaritmo discreto.

Independentemente Smart (1999) e Satoh e Araki (1998) propuseram


um ataque a curvas ditas anmalas, nas quais, o problema do logaritmo
discreto pode ser calculado em tempo polinomial. Um ataque similar fora
proposto ainda por Semaev (1998) para resolver o problema em subgrupos de
ordem p, onde p a caracterstica do corpo que define a curva.

3.9 Provas de Segurana

3.9.1 Segurana do ECDSA

Segundo Goldwasser, Micali e Rivest (1988) define-se como esquema


de assinatura digital a tupla de algoritmos probabilsticos T = (K, G, V), tal que

31
K um algoritmo probabilstico que retorna um par de chaves, pblica e
privada. G tem como entrada uma chave privada x e um mensagem arbitrria
m e retorna uma assinatura S. V um algoritmo probabilstico cuja entrada
uma chave pblica Y, uma mensagem m e uma assinatura S, e tem como
sada a validade ou no da assinatura.

Dada uma chave publica Y gerada pelo algoritmo K, dito que um


adversrio consegue forj-lo, se e somente se, ele capaz de criar uma
mensagem m juntamente com uma assinatura vlida S sobre a mensagem m,
de tal forma que o usurio legtimo no tenha assinado previamente a
mensagem. Assim, um esquema de assinatura digital dito seguro quando um
adversrio no pode forjar uma assinatura, mesmo que ele obtenha
assinaturas de outras mensagens a sua escolha.

O esquema ECDSA dito seguro quando existencialmente inforjvel


sobre o ataque de purotexto escolhido adaptativamente e, para todo adversrio
de tempo polinomial probabilstico, a chance de criar uma assinatura vlida
para uma dada mensagem sem possuir a chave for insignificante.

3.9.2 Segurana do ECIES

A prova original de segurana do ECIES, dada inicialmente por Abdalla,


Bellare e Rogaway (2000) foi baseada em um problema matemtico subjacente
no padronizado. Isso significa que no foi baseado na dificuldade de resolver
o problema computacional, decisional ou da abertura de Diffie-Hellman. Ao
invs disso, a prova passa pela hiptese no s da dificuldade de quebrar o
protocolo de Diffie-Hellman, mas tambm sobre a natureza da funo de
derivao da chave utilizada.

Para definir a segurana do esquema, so necessrios alguns conceitos:


Seja ento um grupo cclico de ordem prima , seja G um gerador deste
grupo, tm-se ainda uma funo de derivao de chave KD e l um parmetro
previamente fixado. A proposta da prova ento o problema da deciso se =
KD([ ]P, l) quando dado ([ ]P, [ ]P, ).

Assume-se ento que e so escolhidos uniforme e aleatoriamente do


conjunto {1, ..., p-1} e que ou igual a KD([ ]P, l), ou escolhido uniforme e

32
aleatoriamente do conjunto de todas as palavras de l-bits. Ao atacante dado
acesso a um orculo de funo hash de Diffie-Hellman.

Para definir a prova em si, supe-se um adversrio A de cifrotexto


escolhido adaptativamente. A definido como um algoritmo de tempo
polinomial probabilstico que supostamente consegue quebrar o algoritmo
ECIES. Seja ainda um algoritmo B que resolver o problema da hash de Diffie-
Hellman. Segue B:

1. B inicia o valor da chave pblica Y = [ ]P e chama o adversrio A


passando Y at que duas mensagens, m0 e m1 e um estado s seja
retornado.

2. B extrai um bit {0,1} aleatoriamente e inicia (k1||k2) = . Forma-se


ento o cifrotexto desafio C* = ([ ]P, c*, r*), onde c* = Enck1(m) e r*
= MACk2(c*). Note que se = KD([ ]P, l), ento C* uma
encriptao da mensagem m.

3. Em seguida, B roda A novamente passando (C*, Y, s). O algoritmo A


retorna um valor entre para .

4. Se = , ento B retorna verdadeiro (isto , que = KD([ ]P, l),


caso contrrio B retorna falso.

A idia por traz da prova que se = KD([ ]P, l), ento o atacante A
est atacando uma instncia vlida de ECIES e tem uma chance significativa
de encontrar corretamente. Se KD([ ]P, l), ento completamente
aleatrio. Isso significa que m foi encriptada e o MAC do cifrotexto fora
computado com chaves aleatrias. Se este o caso, ento um dos resultados
possvel:

O atacante A ser capaz de quebrar o esquema e recuperar em


tempo polinomial probabilstico;

O atacante no pode quebrar o esquema.

Continuando o raciocnio, supe-se que A consegue quebrar o esquema


(caso 1). Neste caso menos provvel que A adivinhe corretamente se

33
foram usadas chaves escolhidas aleatoriamente, e isso significa que B
consegue resolver o problema de hash de Diffie-Hellman. Assume-se que
resolver o problema de hash de Diffie-Hellman intratvel, ento qualquer
atacante que tente quebrar o esquema deve ser capaz de faz-lo, o que uma
contradio.

3.10 Consideraes na estrutura do ECC Utilizao de Ordem


Composta

Uma nova e poderosa idia relacionada criptografia baseada em


curvas elpticas a utilizao de grupos de ordem composta, ao invs dos
grupos de ordem prima. Esta idia atribuda Boneh, Goh, e Nissim (2009), e
foi utilizada para criptografia homomrfica parcial, e desde ento tem sido
utilizada em uma srie de outras aplicaes importantes, incluindo as provas
no-interativas de conhecimento zero, grupo e anis de assinaturas, em busca
de dados encriptados.

No artigo de Boneh, Goh e Nissim apresentada uma forma de


encontrar um grupo de ordem composta para curvas elpticas utilizando o
mtodo de Cocks-Pinch. Para isso, seguem-se as seguintes etapas:

1. Escolhe-se um quadrado perfeito N > 3 que no seja divisvel por 3.

2. Encontra-se o inteiro positivo w tal que um


nmero primo.

3. A curva elptica sobre o grupo de ordem prima Fq tem


pontos sobre este grupo e incorporado ao grau 2
em relao a N.

Aps este procedimento o mtodo utilizado por Boneh invoca o algoritmo


de Cocks-Pinch para encontrar um emparelhamento para curvas elpticas. O
mtodo tem como entrada um inteiro positivo k e um primo p congruente a 1
mod k e tem como sada um primo q e uma curva elptica E sobre o grupo de
grau k com relao a p. Caso o mtodo de Cocks-Pinch no d como sada um
nmero primo q, ento o mtodo repetido com valores de k e p diferentes.

34
3.11 Notas sobre Criptografia baseada em Curvas Elpticas e outros
esquemas

Neste tpico sero apresentadas notas sobre o criptossistema, RSA


bem como uma comparao entre ele e o ECC. So ainda apresentadas
padronizaes que garantem que curvas elpticas podem ser a base
matemtica de criptossistemas realmente seguros.

3.11.1 RSA

O criptossistema RSA foi introduzido em 1977 por Rivest, Shamir e


Adleman e foi a primeira realizao do modelo abstrato de Diffie e Hellman
para criptografia de chave pblica. O algoritmo RSA (ilustrado abaixo) o mais
conhecido da famlia de criptossistemas de fatorao inteiras onde a fora do
sistema criptogrfico reside na dificuldade de fatorar nmeros inteiros grandes.
Neste protocolo criptogrfico so usados inteiros de tamanho suficientemente
grande, escolhidos de modo a tornar a fatorao com fora bruta invivel, na
ausncia de qualquer forma mais rpida ou melhor tcnica matemtica ou
computacional.

Algoritmo 9 - RSA

1. O destinatrio R seleciona, aleatoriamente dois nmeros primos p e q;


2. R publica n = pq;
3. R seleciona aleatoriamente um valor b tal que b e t = (p-1)(q-1) sejam primos
entre si;
4. R calcula a tal que ab = 1(mod t(n)), a chave secreta de R a;
5. R publica b;
6. O remetente D cifra sua mensagem x fazendo: y = xb mod n;
7. D envia y para R;
8. Para decifrar, R computa x = ya mod n.

Assim, para o RSA, a segurana oferecida atualmente considerada,


mas no provada, ser dependente da dificuldade matemtica inerente a fatorar
nmeros grandes, enquanto a velocidade do sistema dependente, s vezes,
do desempenho de exponenciao modular para inteiros grandes.

Para ser considerado suficientemente seguro, os parmetros adotados


no esquema devem considerar que a fatorao de n = pq deve ser
computacionalmente invivel. Os nmeros p e q devem ser nmeros primos

35
com tamanho da ordem de 100 dgitos cada. Existem ataques ao RSA que no
envolvem algoritmos de fatorao, explorando fraquezas inerentes ao sistema,
como escolhas indevidas do nmero ou o uso do mesmo nmero n para
comunicao entre vrias partes. Atualmente, considerando o poder
computacional acessvel ao indivduo comum, usa-se chaves para o RSA de
tamanho superior a 1024 bits.

3.11.2 Comparativo entre ECC e RSA

O criptossistema RSA atualmente o criptossistema pblico mais


amplamente utilizado hoje. Como a multiplicao de inteiros de modulo n um
procedimento relativamente complexo de implementar, e desde que uma
operao exponencial requer repetidas multiplicaes, o sistema RSA no
pode atingir a velocidade de sistemas de chave privada, tais como DES.
Naturalmente, isto tambm vlido para todos os outros sistemas de chave
pblica j existentes.

Criptografia RSA e verificao de assinatura podem ser aceleradas


significativamente selecionando um pequeno expoente b. Tpicos valores
usados na prtica so b=3 e b = 216+1. A implementao mais rpida de
hardware existente do RSA pode criptografar dados com velocidade de 64
Kbits por segundo com um mdulo n de 512 bits. Por exemplo, a
Implementao de software no Motorola DSP56000 na qual pode criptografar
com velocidade de 13,4 Kbits por segundo e 11,6 Kbits por segundo tem sido
relatado por mdulo de 512 bits.[12]

Os ataques contra o criptossistema RSA so baseados na soluo do


problema de fatorao inteira (PFI). Existem dois tipos de algoritmos: algoritmo
de propsito especial e de propsito geral. Algoritmos de propsito especial
tentam explorar especificidades do sistema em considerao, tais como o
nmero n a ser fatorado. Um Algoritmo de propsito geral resolve todos os
casos do problema em questo.

A criptografia baseada em curvas elpticas vem como uma alternativa


para criptossistemas de chave pblica, com a proposta de aumento de
segurana, diminuio de esforo computacional para encriptao e

36
decriptao. A proposta apresentada nesse trabalho descreve algumas das
solues j encontradas implementando as curvas elpticas e hiperelpticas.
Porm tais criptossistemas no esto completamente imunes a ataques. O
principal esquema utilizado o j apresentado ECDLP, que explora a
dificuldade de resolver o problema do logaritmo discreto sobre curvas elpticas.

Existem mtodos usados atualmente para atacar o problema do


logartmicos discreto que dependem da existncia de um grupo abeliano G
finito. Assim estes, mtodos tambm podem ser aplicados ao problema
anlogo problema de logaritmo discreto sobre curvas elpticas (ECDLP). Esses
mtodos so geralmente muito mais lentos por causa da complexidade da
adio dos pontos da curva elptica e pelas operaes de duplicao de
pontos. Seja E uma curva elptica definida sobre um campo binrio finito, P e
Q, pontos de E, o principal ataque para dados pode ser resumidos da seguinte
forma:

Busca Exaustiva (usando o algoritmo Baby-step giant-step): Este


algoritmo (tambm conhecido como Algoritmo de Pollard Rho) devido Pollard,

tem um tempo esperado de execuo de fases, onde a fase uma

adio de pontos de uma curva elptica e r a ordem do ponto P. Em 1993 Van


Oorschot e Wiener paralelizaram o algoritmo de Pollard Rho para obter um

tempo esperado de execuo de fases com m processadores em paralelo.

Wiener e Zuccherato promoveram a reduo deste para em 1998. Ou seja,


usando m processadores resulta em um acrscimo de velocidade de m vezes.
A verso do algoritmo de Pollard Rho de Zuccherato e Wiener o algoritmo
mais rpido de propsito geral conhecido para ECDLP. Para evitar esse ataque
Baby-step giant-step, a ordem de E deve ser suficientemente grande, i.e. #E>
2160 bits.

Algoritmo de Pohlig-Hellman: Este algoritmo devido a Pohlig e


Hellman, explorando a fatorao de r (a ordem do ponto P). O algoritmo reduz
o problema descoberta da chave secreta a para o problema da recuperao
do mdulo de cada um dos fatores primos de r.

37
Mtodo Index-Calculus: Ao contrrio de outros tipos de grupos utilizados
em criptografia, o grupo da curva elptica no tem uma boa noo de
suavidade, ou seja, no h nenhum conjunto de pequenos elementos no qual
um elemento aleatrio tem uma boa chance de ser expresso por um algoritmo
simples. Por esta razo, o mtodo Index-Calculus no funciona para
ECDLP. Em 1991, no entanto, Menezes, Okamoto, e Vanstone mostraram
como o ECDLP pode ser reduzido a DLP e assim o mtodo pode ser
aplicado. No entanto, este algoritmo de reduo de MOV apenas efetivo em
algumas classes especiais de curvas como curvas de supersingulares.

Alm disso, algumas classes especiais de curvas elpticas so


suscetveis a ataques especficos:

Curvas supersingulares
Curvas anmalas

Ou seja, relacionando ataques, os dois mtodos esto suscetveis a


muitos e elaborados ataques que visam resolver o problema matemtico
envolvendo o mtodo, porm o que pesa em favor do RSA que a fatorao
de inteiros ou problema do logaritmo discreto milenar, isto , j passa pelo
crivo pblico a muito mais tempo que o problema de soluo de uma equao
geradora de uma curva elptica.

No caso de eficincia, em ambos, RSA e criptossistemas baseados em


curvas elpticas, considervel economia computacional pode ser feita. No RSA
um expoente pblico curto podem ser empregado (embora isso represente um
mau negcio e incorrer em alguns riscos de segurana) para acelerar a
verificao de assinatura e criptografia. Em criptossistemas baseados em
curvas elpticas, uma grande parte da gerao de uma assinatura e criptografia
de transformaes podem ser pr-computadas. Alm disso, vrias bases
especiais para o corpo finito GF(2m) podem ser empregada para executar a
aritmtica modular envolvida na operao de curvas elpticas mais
rapidamente. Implementaes de estudo do caso dos sistemas mostram que
com todos esses ganhos de eficincia no local, os criptossistemas baseados
em curvas elpticas tm uma ordem de magnitude (cerca de 10 vezes) mais
rpida que o RSA. O uso do RSA com um expoente pblico curto pode tornar a

38
criptografia e tempo de verificao de assinatura (mas no decriptao e tempo
de gerao de uma assinatura) comparvel com tempo para esses processos
relacionados as curvas elpticas.

Outro parmetro analisado entre os dois criptossistemas a questo de


espao, criptossistemas de curvas elpticas tem um potencial para prover
segurana equivalente a protocolos de chave pblica j existentes, mas com
chaves de tamanhos menores. Ter chaves de tamanho menor um fator que
pode ser crucial em algumas aplicaes, por exemplo, o projeto de sistemas de
cartes inteligentes. O processador aritmtico nos cartes inteligentes
limitado em tamanho de 25mm. Um projeto de chip RSA para fazer
multiplicao modular de nmeros de 512 bits tem cerca de 50.000
transistores, enquanto um projeto de chip para realizar operaes aritmticas
em um corpo GF(2593) tem cerca de 100.000 transistores. Com a atual
tecnologia, estes dispositivos so muito grandes para colocar em um carto
inteligente. Em comparao, um projeto de chip para realizar operaes
aritmticas em GF(2m), onde m cerca de 200, teria menos de 15.000
transistores, e ocuparia cerca de 15% dos 25mm, rea atribuda para o
processador. Uma outra vantagem para o uso de curvas elpticas que cada
usurio pode selecionar uma curva E diferente, apesar de todos os usurios
usarem o mesmo corpo subjacente K.

3.11.3 Tamanho das Chaves

Uma das vantagens que o modelo de criptografia baseado em curvas


elpticas sobre os demais a possibilidade de uso de chaves criptogrficas de
tamanhos significativamente menores. A tabela 1 demonstra um comparativo
entre o tamanho de chaves necessrios, para um esforo computacional de
tentativa de encontrar a chave privada por mtodos de exausto, para sistemas
de criptografia de chave pblica (sobre curvas elpticas ou RSA), em relao a
tamanho fixos de chave em um modelo de criptografia simtrica. importante
observar o comportamento praticamente exponencial do tamanho de chave
para RSA, quando comparado ao de sistemas sobre curvas elpticas.

39
Tabela 1 - Comparativo entra tamanho das chaves
Modelo Simtrico Modelo Elptico Modelo RSA
80 163 1024
128 256 3072
192 384 7680
256 512 15360
* Valores em bits.

3.11.4 RFC Request for Comments

Request for Comments, ou simplesmente RFC, um conjunto de


normas determinadas pela Fora Tarefa de Engenharia da Internet IETF que
descreve mtodos, comportamentos, pesquisas e inovaes aplicveis ao
funcionamento da internet e sistemas computacionais ligados grande rede.
Neste contexto algumas RFCs foram formuladas para regular o padro
estrutural e parmetros de segurana que devem ser adotados no
desenvolvimento de esquemas criptogrficos baseados em curvas elpticas.

Segundo a RFC 3766 (2004), curvas elpticas definidas sobre corpos


finitos so uma forma particularmente eficiente de troca de chave, utilizando
neste caso o mtodo de troca de chaves de Diffie-Hellman, sugerindo ainda
que o seu uso pode levar a valores menores de ordem do grupo utilizado e
consequentemente de tamanhos de chaves menores na ordem de dez vezes
menor no caso das curvas elpticas.

A RFC 5639 (2010) prope vrios parmetros de domnio para


criptografia sobre curvas elptica sobre campos finitos. Os parmetros de
domnio definidos nessa RFC condizem com os padres internacionais em
criptografia e podem ser usados nos mais variados certificados, como X.509,
CRL, IKE, TLS, assinaturas XML e todos os aplicativos ou protocolos com base
na sintaxe de mensagens criptogrficas.

Alm dos parmetros de domnio, a RFC 5639 define requisitos de


segurana que devem ser seguidos por esquema de criptografia baseado em
curvas elpticas visando um elevado nvel particular de segurana:

40
Um sistema de ECC deve ser imune a ataques que usam
emparelhamento de Weil ou Tate (Joux 2002). Este requisito exclui
as curvas supersingulares;
A curva sobre o corpo Fp no pode ser anmala;
Utilizar uma classe de nmeros elevada, ou seja, a ordem do corpo
deve ser suficientemente grande;
Utilizar grupos de ordem prima;
Os parmetros de domnio devem ser gerados de forma
pseudoaleatria (Katz, 2007) utilizando sementes que so gerados
de forma sistemtica e abrangente;
Devem ser exibidas provas de segurana.

3.12 Consideraes Finais

Nesse captulo foram introduzidos os conceitos relacionados a


criptografia de chave pblica. Foram apresentados fundamentos sobre
criptografia sobre curvas elpticas. Alguns esquemas de assinatura digital e
encriptao j consolidados foram descritos que sero utilizados no restante do
trabalho.

Fora ainda apresentado um estudo comparativo entre o esquema


criptogrfico mais usado atualmente (RSA) e o esquema criptogrfico baseado
em curvas elpticas. Foi abordado em detalhes pontos sobre implementao,
performance, utilizao de recursos e tamanho das chaves.

Por fim foram apresentadas as RFC envolvidas na padronizao de


estruturas criptogrficas baseadas em curvas elpticas com o intuito de garantir
sua segurana e estrutura.

41
4 Numerrio Eletrnico

Numerrio eletrnico, dinheiro eletrnico ou e-Cash um uma estrutura


capaz de realizar transferncias eletrnicas de crditos monetrios sem a
utilizao de artefatos fsicos que representem a quantidade e a validade do
valor transferido. Na realidade essa estrutura j vem sendo utilizada por meio
dos cartes de crdito e dbito que viabilizam a transferncia de valores de um
usurio a outro.

A idia de dinheiro eletrnico fora introduzida por David Chaum (1982)


como um sistema annimo de transferncia de valores monetrios. A idia
bsica permitir que usurios de dispositivos eletrnicos pudessem utiliz-los
para armazenar e transferir dinheiro. O objetivo principal ento aliar as
caractersticas do dinheiro fsico com as do comrcio eletrnico.

Privacidade, anonimato e inforjabilidade so caractersticas do dinheiro


fsico. No que diz respeito privacidade, o dinheiro fsico inviabiliza que
terceiros saibam a quantia exata que um usurio possua. O dinheiro fsico
annimo, ou seja, ele trafega no meio sem manter o caminho, o usurio ou o
tempo pelo qual foi utilizado e tambm no trafega por dois caminhos ao
mesmo tempo. Muitos recursos so empenhados na inforjabilidade do dinheiro,
ou seja, a produo do dinheiro fsico prope que nenhum usurio no
autorizado do sistema monetrio seja capaz de criar ou recriar alguma nota.

O dinheiro eletrnico por sua vez apresenta a velocidade e segurana de


transferncia de valores, alm da alta capacidade de armazenamento. Essas
propriedades so identificadas devido ao escopo em que so manipulados, no
qual transportar e manter essa transferncia segura so de todo modo fcil
utilizando recursos de criptografia e largura de banda. Como se trata de dados
computacionais, ento armazenar milhes de unidades monetrias significa
armazenar alguns megabytes de dados em um CD, pendrive ou disco rgido.

A principal dificuldade de se implementar um sistema de dinheiro


eletrnico se refere a somar as caractersticas do dinheiro fsico s do dinheiro
eletrnico, principalmente na anonimidade do dinheiro eletrnico, isto , impedir

42
que usurios no autorizados sejam capazes de determinar o caminho por
onde aquele dinheiro trafegou. Alm disso precisa-se manter a inforjabilidade,
ou seja, impedir que uma mesma unidade monetria seja transferida para dois
pontos. Essa discusso ser o cerne desse captulo.

Por questes de notao, dinheiro eletrnico ser nomeado neste


trabalho como e-Cash e unidades monetrias como e-Coin.

4.1 No rastreabilidade de e-Cash

Dinheiro fsico tem uma considervel vantagem sobre e-Cash com


respeito privacidade, embora possua nmeros seriais que marcam cada nota
podendo assim ser passvel de rastreabilidade. Em Chaum (1985) descrito
uma analogia a respeito da possibilidade de no rastreabilidade de transaes:
suponha que um indivduo A tenha sido convidado para jantar em um
restaurante por dois de seus amigos, indivduos B e C. Depois do jantar, ao
solicitar a conta o responsvel pelo restaurante informa que um dos trs
amigos pagou-a, mas no diz quem o fez. Se o indivduo A pagou a conta,
seus amigos desejam saber, uma vez que o indivduo A fora convidado. Se A
no pagou a conta, os indivduos B e C desejam que A no seja apto a
descobrir quem a pagou.

O problema possvel de resolver da seguinte forma: B e C jogam uma


moeda de forma que A no consiga determinar o resultado. B e C iro informar
ao usurio A o resultado do sorteio da moeda dependendo de quem pagou a
conta de forma que: se B pagou a conta e o sorteio da moeda tiver dado cara
ento B ir informar coroa para A, caso contrrio, se B no pagou a conta,
ento ir informar o valor correto do sorteio, neste caso cara. importante
frisar que, se ambos informarem cara ou coroa ento qualquer um deles
saberia que A pagou a conta. Caso B e C digam valores diferentes, ento A
saberia que um deles pagou a conta, porm com uma probabilidade de de
acertar qual deles (B ou C) pagou a conta.

Esse experimento descreve um envio no rastrevel de mensagem, j


que mesmo sabendo o que cada um disse, a chance de determinar quem
realmente tem a mensagem verdica de 50%. No contexto do e-Cash, a

43
analogia aplicvel na identificao de qual transao verdica sem
determinar de fato a transao. Assim dado um pagamento (transao) por e-
Cash um segundo receptor saberia identificar se a atual transao vlida, isto
, possui e-Coins verdadeiras, sem necessariamente saber o que ocorreu com
a primeira transao com aquela moeda.

A soluo dada por Chaum parte do princpio de que, para identificar a


fraude uso de uma mesma e-Coin em duas transaes diferentes, conhecida
como double-speding , bastaria que a mesma moeda fosse apresentada ao
mesmo receptor, por exemplo, o banco central. A vantagem desse argumento
que o agente bancrio que fomentasse a estrutura de e-Cash no precisaria se
envolver em cada transao de forma on-line, e interviria apenas quando as e-
Coin duplicadas fossem descontadas (sacadas no banco).

Fica claro que essa soluo tem inmeras contrapartidas. Usurios


maliciosos poderiam distribuir e-Coins em inmeras transaes e a fraude s
seria descoberta quando tais fossem apresentadas ao agente bancrio o que
inviabilizaria a acusao do fraudador.

Envolver um agente em cada transao que ocorra uma soluo para


desfazer e alertar usurios de possveis fraudes de duplicao de e-Coin. No
entanto, esquemas no qual uma terceira parte se envolve em cada transao
so ditos frgeis e as aferies de validade seriam um gargalo na transao
devido a necessidade de troca de mensagens para permitir a movimentao
financeira. Simon (1998) prope ento um esquema baseado em criptografia
para garantir todas as caractersticas descritas, que segundo certas
circunstncias possvel construir protocolos de transferncia de e-Cash ditos
seguros.

Simon (1998) prope um sistema online de dinheiro eletrnico baseado


na hiptese da existncia de uma rede na qual a anonimidade e no
rastreabilidade possvel. O esquema baseia-se em duas funes bsicas,
uma funo unidirecional, e um esquema de assinatura digital. A funo
unidirecional (onde possvel se calcular sua imagem e invivel calcular a
pr-imagem) f1(x) para gerar uma imagem de uma pr-imagem x1, uma
segunda parte do algoritmo recebe essa imagem e retorna um valor assinado

44
digitalmente. O protocolo definido por Simon possui um conjunto de algoritmos
que determinam todas as funcionalidades necessrias para fomentar um
ambiente de e-Cash.

4.2 Procedimentos sobre e-Cash

Para fomentar um sistema de transaes de dinheiro eletrnico deve-se


manter uma analogia com as transaes do mundo real. Todas as
propriedades devem ser mantidas no que se refere privacidade, no
rastreabilidade e inforjabilidade da moeda. Existem, portanto processos
caractersticos das transaes bsicas que ocorrem no mundo real e devem
ser implementados em um ambiente computacional. Retirada, troca,
pagamento e depsito so os procedimentos comuns ao dinheiro real e o
eletrnico.

A retirada o momento onde um usurio retira unidades monetrias do


agente bancrio. O dinheiro fsico fabricado pela casa da moeda, as unidades
monetrias reais so criadas de forma que impea a cpia, um nmero serial
inserido em cada nota, tornando-a nica. De forma anloga, o processo
eletrnico de transferncia de dinheiro parte de um agente autorizado capaz de
gerar numerrio eletrnico, ficando a disposio do usurio para a retirada.

Em algum momento, um usurio pode necessitar trocar suas e-Coins


com um outro usurio. O procedimento de troca importante para evitar que o
usurio entregue a mesma e-Coin a outro usurio ou agente bancrio. Ao
efetuar essa troca o agente bancrio capaz de validar as unidades
monetrias do usurio e guardar estados que garantiriam sua no duplicidade.

Outro procedimento o pagamento, esta caracterstica semelhante


troca, neste caso as e-Coins so utilizadas seguindo os passos: um usurio,
denotado por comprador, passa uma quantidade de e-Coin para um usurio
receptor, notado aqui de vendedor. Ao receber a quantidade de e-Coins, o
vendedor pode efetuar uma troca com um agente bancrio, que alm de validar
tais moedas pode repassar e-Coins atualizadas.

O depsito o ato de um usurio, dada que existem e-Coins que no


foram gastas, depositar em um agente bancrio de forma no annima. Ao

45
receber um depsito o agente bancrio pode validar a duplicidade ou no da
unidade monetria eletrnica.

Associada a todos esses processos est a capacidade de comunicao


annima, extremamente necessria em transaes de dinheiro eletrnico, na
pratica a anonimidade da comunicao pode ser baseada em nada mais do
que o canal de comunicao, seja ele feito por uma companhia de telefone ou
pela criptografia de um canal de comunicao via outros meios, como
infravermelho, wi-fi ou bluetooth.

4.3 Double-spending

Double-spending pagamento dobrado o ato de, em um sistema de


e-Cash, um usurio conseguir usar uma mesma e-Coin duas ou mais vezes,
analogamente, seria a capacidade de uma pessoa conseguir copiar cdulas
reais e utiliz-las no comrcio sem ser identificado.

O double-spending uma falha de implementao no protocolo de troca


de e-Cash, j que arquivos eletrnico podem ser duplicados, ento como e-
Cash nada mais do que informao eletrnica, o ato de utiliz-la em alguma
transao no necessariamente remove seus dados do perifrico origem.

Como fora mostrado, apresentar um e-Coin a um agente bancrio


autorizado seria o suficiente para determinar se essa e-Coin tenha sido
duplicada. Existem ainda sistemas on-line que podem validar cada transao e
determinar a unicidade da e-Coin.

4.4 e-Cash off-line

Notadamente as propriedades descritas tm caractersticas on-line, ou


seja, necessitam de uma comunicao constante com um agente bancrio
autorizado, que valida e renova as e-Coins a cada transao. Tornar o
processo off-line significa a no interveno de uma terceira parte nas
transaes para validar a unicidade dos e-Coins e assim evitando o double-
spending tornando o esquema aparentemente menos seguro visto da tica
de um agente com autoridade.

46
Um sistema de e-Cash off-line com completa rastreabilidade de
transaes pode ser simplesmente idealizado usando teorias bsicas de
criptografia e assinatura digital. Cada e-Coin seria representada por uma
unidade digital assinada pelo agente bancrio regulamentador. O double-
spending ento seria identificado quando a mesma e-Coin fosse apresentada
ao agente bancrio, possivelmente bem depois da transao ter sido
concretizada. Brands (1994) sugere a principio uma diviso qualitativa das
transaes, isto , transaes com valores pequenos poderiam ser feitas off-
line, e, portanto, terem uma verificao de unicidade a posteriori, e transaes
com valores maiores deveriam ter o crivo de um agente bancrio, o que
segundo ele, desencorajaria a fraude por double-spending.

Notadamente, essa soluo no vivel, por que fica claro que milhares
de transaes de pequenos valores poderiam ser feitas com esforo
computacional nfimo e gerando um rombo no sistema.

O primeiro sistema de e-Cash off-line foi proposto por Chaum (1990),


onde cada e-Coin possua criptografada a informao do seu proprietrio, se
ela fosse utilizada uma nica vez no seria rastreada, caso fosse aplicada o
double-spending, a identidade do usurio poderia ser revelada traando a sua
rota atravs de um histrico de transaes armazenado. Neste caso, o sistema
necessita que todas as transaes sejam armazenadas de forma transparente
para o usurio utilizando protocolos de criptografia onde apenas os agentes
bancrios autorizados fossem capazes de decifrar.

4.5 Premissas Bsicas sobre e-Cash Off-line

Pode-se definir um sistema de e-Cash off-line genrico pelos seguintes


atores: 1) Agente Bancrio Central que efetua a criao de e-Coins de forma
nica e efetua crditos e dbitos de dinheiro eletrnico; 2) Agentes Bancrios
Autorizados interagem com o agente central e so responsveis pela
transmisso ao meio das e-Coins, alm de efetuar resgates dos valores; 3)
Mercados On-line so instituies que aceitam e-Coins como forma de
pagamento por bens e servios; 4) Clientes so usurios do sistema que obtm
e-Cash atravs de agentes bancrios autorizados e que as usa para efetuar
compras nos Mercados On-line, pode-se adicionar a funcionalidade de troca de

47
e-Coins entre clientes para criar uma analogia fiel ao sistema mercadolgico
real.

Definido os atores do sistema de e-Cash, define-se os seguintes


requisitos bsicos que devem ser satisfeitos:

Ambiente Descentralizado: devido a caracterstica off-line do


sistema e-Cash deve-se idealizar um ambiente que possibilite a
utilizao de e-Coins e a preveno de double-spending mesmo que
os agentes bancrios centrais e autorizados estejam off-line;
Segurana de depsitos de clientes: O sistema de e-Cash deve
prover no rastreabilidade das transaes, somado a isso, o
processo de depsito pode ser validado pelas transaes realizadas
pelos clientes;
Segurana Genrica: O sistema deve assegurar que e-Coins sejam
inforjveis e no duplicveis;
Usabilidade e Extensionabilidade: O sistema deve ser flexvel o
suficiente acomodando conhecimento off-line e mecanismos de
deteco de Double-spending;
No rastreabilidade: O sistema deve manter, sob certas,
circunstancias a anonimidade, e assim transaes monetrias no
devem ser rastreveis.

A decorrncia desses requisitos que, se um cliente no pode ser


rastrevel, ento existe um perigo de Double-spending. Assim, estes requisitos
garantem que o sistema deve tambm prover em tempo real a deteco de
Double-spending. Assim podem-se fazer algumas observaes: os mercados
on-line, por serem agentes credenciados do sistema e-Cash podem em longo
prazo se tornarem agentes bancrios autorizados, capazes de realizar
verificao de legitimidade de e-Coins; Os mercados on-line tm a capacidade
de conexo em tempo real com os agentes bancrios autorizados, o que
permite detectar fraudes no sistema, dado isso podem tambm solicitar dos
agentes bancrios autorizados, e-Coins para alimentar o sistema.

48
4.6 Privacidade em um sistema e-Cash

Um ponto importante deve ser alvo de observaes para habilitar a


incorporao de um sistema e-Cash com completa no rastreabilidade de
transaes enquanto se mantm um nvel elevado de segurana contra
Double-spending: privacidade. Em um esquema e-Cash, os usurios desejam
ter sua privacidade garantida, isto , utilizar suas e-Coins para comprar um
bem ou servio no deve revelar informaes confidenciais, ou seja, o sistema
no pode ser capaz, em determinadas circunstncias, de revelar o que o
usurio comprou por que fere o principio do anonimato, alm do que, as
movimentaes monetrias de um indivduo podem revelar muito da rotina, o
que se caracteriza como uma falha gravssima.

Para manter a privacidade do usurio, Chaum (1982) props um


esquema de assinaturas digitais, denominadas de assinaturas cegas.
Assinaturas cegas um sistema que soma os princpios das assinaturas
digitais combinadas com sistemas de chave pblica. As trs funes a seguir
compe um criptossistema de assinatura cega:

Funo de assinatura s, conhecida somente pelo ponto assinante, e


sua inversa s que so mantidas pblicas. A assinatura s tal que
dado um argumento x qualquer (uma cadeia de caracteres, ou um
ponto no domnio da funo) e uma outra assinatura s(s(x)) = x e
dado s nada pode se concluir sobre s;
Dada uma funo comutativa c e sua inversa c, ambas conhecidas
apenas pelo emitente de uma dada mensagem, tal que, c(s(c(x))) =
s(x), e c(x) e s nada pode ser determinado sobre x;
Funo r faz a checagem de redundncia de assinaturas e sua
viabilidade.

Assinaturas cegas habilitam a rastreabilidade de transaes se e


somente se o detentor esteja envolvido em Double-spending, isto ,
rastreabilidade realizada apenas aps a fraude ter ocorrido. Para rastrear as
transaes, a identidade de um usurio deve ser codificada dentro do processo
de retirada, considerando que esta informao no conhecida por um agente

49
bancrio em virtude da propriedade da assinatura cega, necessria para
alcanar a no rastreabilidade de pagamentos. Solues sistemticas sero
mostradas para garantir a no rastreabilidade de pagamentos alm do
impedimento de Double-spending.

Chaum (1998) utiliza as funes mostradas no seguinte protocolo:

Remetente seleciona um valor x aleatoriamente, tal que r(x) seja


vlido, formula c(x) e aplica c(x) para o assinante;
Assinantes assinam c(x) aplicando s e retorna o dado assinado
s(c(x)) para o remetente;
O remetente retira o material assinado pela aplicao de c,
produzindo assim c(s(c(x))) = s(x);
Qualquer um pode verificar que o dado retirado s(x) fora formada
pelo assinante, aplicando a chave pblica do assinante e verificando
r(s(s(x))).

Algumas propriedades de segurana podem ser atingidas atravs das


assinaturas cegas:

Assinatura Digital: qualquer um pode checar que uma assinatura


fora retirada da assinatura s(x) usando uma chave privada do
assinante;
Assinatura cega: assinantes no conhecem nada sobre a
correspondncia entre os elementos do conjunto de assinaturas
retiradas de s(x1) a os elementos de um conjunto de assinaturas no
retiradas de s(c(x1));
Converso de assinaturas: remetentes podem criar um conjunto de
assinaturas retiradas para cada mensagem assinada pelo assinante,
isto , mesmo conhecendo s(c(x1)), ..., s(c(xn)) e a escolha de c, c e
x1, impraticvel produzir s(y), tal que r(y) seja vlida e yx1.

4.7 Atomicidade em um sistema e-Cash

Xu, Yung e Zhang (1999) propuseram uma soluo para o combate ao


Double-spending em um sistema de e-Cash off-line com protocolos de retirada,

50
troca, pagamento e depsito de forma atmicos, isto , cada um dos protocolos
usa o conceito de atomicidade para garantir os padres de segurana
necessrios nesse tipo de sistema.

Tygar (1996) props ento a diviso em trs classes de atomicidade


utilizadas no sistema e-commerce, e pode-se estender tal diviso a um sistema
e-Cash:

Atomicidade do dinheiro: As transaes envolvendo e-Coins


devem ser feitas por completo ou no serem realizadas, isso , um
sistema de e-Cash deve garantir que dada uma transferncia de e-
Coins, ou a quantidade a ser transferida feita por completo, e-Coin
por e-Coin, ou nenhuma e-Coin deve ser passada para o outro ponto;
Atomicidade dos bens: Essa caracterstica diz respeito aos
protocolos de troca e pagamento, ou seja, dado que a transao de
e-Cash dita atmica, ento, o sistema deve garantir a atomicidade
dos bens de direito, isto , garantir que o bem comprado ou a e-Coin
de troca seja entregue ao usurio de direito.
Entrega Certificada: Protocolos devem ser atmicos e tambm
permitirem que clientes, mercados on-line e agentes bancrios
autorizados provejam a determinao precisa do que fora entregue,
seja e-Coins de troca ou bens. Se existir uma disputa, isto , uma
contestao de uma transao, pode-se mostrar a uma entidade de
audio o que fora entregue.

A idia bsica sobre a atomicidade em sistemas e-Cash consiste na


execuo completa de uma transao ou toda ela seja desfeita, implicando que
a e-Coin no seja perdida dentro do prprio sistema. A proposta que
aplicaes que envolvam processos de entrega de bens e servios que foram
pagos com dinheiro eletrnico. Para representar bens e servios reais, um
sistema e-Cash idealiza o e-Goods que representam um bem ou servio que
seja objeto da transao.

O protocolo a seguir define uma transao atmica entre um mercado


on-line e um cliente:

51
Seja C um cliente, ou cliente, do esquema e-Cash e MO um mercado
on-line. Numa transao entre C e MO, definem-se o valor a ser
pago, o bem e servio a ser entregue define-se ento o tempo t que
representa o prazo mximo para que MO efetue o protocolo de
depsito, e dado por t = t0 + , onde t0 o tempo que o interessado
na transao iniciou-a e referente ao tempo que a transao
ocorreu;
C envia a MO sua chave pblica temporria kc com inteno de gerar
uma chave k que ser usada para encriptao e decriptao de e-
goods;
MO envia um e-Good encriptado para C que ir representar o objeto
de negociao entre essas partes. O e-Good possui internamente a
chave pblica temporria km de M e uma assinatura S;
C assina um objeto transao T utilizando sua chave privada e
encripta com a chave km as e-Coins e anexa a T, o resultado disso
um objeto denotado por A. C envia A para MO;
MO verifica a assinatura contida em A atravs de kc e extrai as e-
Coins. Caso a assinatura no confira, MO envia uma mensagem R
ao cliente C que cancela a transao, R contm km, que identifica
todo o processo.

O principal questionamento que envolve o protocolo descrito diz respeito


ao retorno de e-Coins ao cliente, ou seja, dado que algo errado tenha ocorrido
o bem ou servio real no possa ter sido entregue, ou o mercado on-line
identificou alguma irregularidade na transao ento deve-se devolver as e-
Coins ao seu proprietrio de origem.

Um protocolo de retorno (ou revogao) de e-Coins deve ser uma


soluo para resolver o problema de um consumidor necessitar obter os
valores de um pagamento de volta. importante frisar que as e-Coins que
foram objeto da transao podem ou no estar de posse ainda do mercado on-
line, para tanto um registro de transaes nesse tipo de protocolo necessrio
para desfazer uma negociao. Define-se ento o seguinte protocolo:

52
O cliente C envia uma cpia do pagamento que deseja reaver para o
mercado on-line MO, essa cpia, denotada por T contm a chave
pblica km que deteve quando ocorreu a transao. T assinada por
C com sua chave privada;
MO identifica a transao atravs de km e obtm ento kc respectiva
a transao;
M constri um objeto R que contm sua assinatura, a quantidade de
e-Coins relativas transao. R encriptada com a chave R
encriptada com a chave pblica kc;
MO envia R a C;
C valida a assinatura de MO e verifica se a quantidade de e-Coins
informada em R e envia uma mensagem positiva ou negativa para
MO, dependendo da validade ou no dessa quantidade;
Ao recebe a ltima mensagem de C, caso ela seja positiva, MO
encripta as e-Coins utilizando kc e as envia ao cliente.

4.8 Sistema e-Cash off-line bsico

Brands (1994) props um sistema e-Cash off-line genrico que envolve


assinaturas digitais e criptografia de dados, a saber um agente bancrio ser
denotado por B, seja ele um agente bancrio central ou um agente bancrio
autorizado. C nota o cliente, ou detentor da conta bancria. MO nota um
mercado online.

O processo inicia com B determinando um grupo de ordem prima


denotado por onde q um nmero primo suficientemente grande. B gera
aleatoriamente uma tupla de elementos geradores T = (g, g1, g2) e um nmero
x Z*. Alm disso, o agente bancrio seleciona duas funes hash resistentes
a coliso, denotadas por H e H0. A funo H usada para construir e verificar
as assinaturas de B, e H0 especifica de que maneira o dinheiro eletrnico deve
ser computado em um protocolo de pagamento. B ento publica , a tupla T, e
a descrio de H e H0 como suas chaves pblicas. A chave privada de B x.

O formato de H0 assume que cada mercado on-line MO tem uma nica


identificao com o conjunto de agentes bancrios, identificao esta denotada

53
por IM que conhecida apenas por MO e o conjunto de agentes bancrios.
Essa identificao garante que dois mercados on-line diferentes iro gerar
protocolos de pagamento totalmente distintos. Alm disso, MO insere no
protocolo o tempo D para garantir ainda que mesmo que pagamentos idnticos
sejam requisitados o protocolo de pagamento ir trata-los de forma totalmente
distinta.

B tambm inicia dois bancos de dados, um o banco de dados da conta


bancria e usado pelo banco para armazenar informaes sobre os clientes.
A outra base de dados chamada de base de depsitos e usada para
armazenar informaes relevantes de cpias de transaes.

O agente bancrio gera uma assinatura S no par (X,Y) x . A


assinatura consiste na tupla (z, a, b, r) x x x tal que:

Uma e-Coin uma tupla X, Y e a assinatura S. Se um cliente conhece a


representao de X e Y com respeito a (g1, g2), ento pode-se dizer que o
cliente conhece a representao da e-Coin.

4.8.1 Protocolos Simplificados

Abrindo uma conta: Quando um cliente C abre uma conta no banco B, B


solicita a identidade do cliente. O cliente gera um nmero aleatrio n1 ,e
computa . Se , ento C transmite I para B e utiliza n1
secretamente. B armazena a identificao de C em sua base de dados junto
com I. importante frisar que uma conta nica no armazenamento de contas
do agente bancrio e assim B est apto a identificar um dado cliente Cn em
algum caso de double-spending.

B computa z = (Ig2)x, e transmite-o ao cliente. Alternativamente, B


publica e como parte de sua chave pblica, ento C pode computar z por
si mesmo.

Protocolo de Retirada: Quando um cliente C deseja retirar uma e-Coin,


primeiramente deve-se provar que ele o dono da conta. C assina digitalmente

54
a requisio de retirada, dessa forma o agente bancrio pode averiguar a
identidade do cliente. Para retirar e-Coins o protocolo a seguir executado:

Algoritmo 10 - Retirada de e-Coins


1. B gera um nmero aleatrio w Zq e envia eb para C;
2. C gera trs nmeros aleatrios: s , x1, x2 Zq, e usa-os para computar X =
,Y= e z = zs. C tambm gera outros dois nmeros aleatrios u,
v Zq, e usa-os para computar e ;
3. C computa o e envia para B;
4. B envia a resposta r = cx + w mod q para C, e debita da conta de C.

C aceita a transao se e somente se e . Se essa


verificao for verdadeira ento C computa Algumas
observaes podem ser retiradas do protocolo:

Se o cliente aceita o protocolo de pagamento, ento X, Y, (z, a, b,


r) uma moeda na qual o cliente conhece a representao.
Assume-se que a assinatura existencialmente inforjvel mesmo
com acesso a consulta de um orculo de tempo polinomial. Ento
desprezvel a existncia de uma moeda forjada, mesmo quando o
protocolo de retirada executado em tempo polinomial probabilstico
e com diferentes nmeros de conta.

Ento, a inforjabilidade da assinatura garante que o nmero de e-Coins


em circulao no sistema de e-Cash nunca exceder o nmero de execues
do protocolo de retirada, assim, pode-se afirmar que para cada moeda a ser
retirada o protocolo chamado. Assume-se ainda que o protocolo de retirada
seja de assinatura cega com funes invariavelmente cegas I1 e I2 aplicados a
(g1, g2) tal que I1( , ) = I2( , )= / mod q.

Protocolo de Pagamento: Quando C deseja efetuar um pagamento para


MO, deve-se seguir o seguinte algoritmo:

Algoritmo 11 - Pagamento
1. C envia X, Y e assinatura(X, Y) para M;
2. Se X 1, ento M computa d = H0(X, Y, IS, tempo), onde o tempo um nmero
que representa o tempo da transao;
3. MO envia d para C;
4. C computa a resposta r1 = d(u1s) + x1 mod q e r2 = ds + x2 mod q e envia-os

55
para M;

MO aceita o pagamento se e somente se a assinatura(X,Y) uma


assinatura sobre (X,Y), e . Se C tiver acesso a um relgio, a
identidade IS e possa computar d por si s este protocolo entra em colapso.
Decorre do protocolo que se C pode determinar corretamente dois valores
distintos de d, ento ele conhece a representao de X e Y com respeito a (g1,
g2). Como H0 uma funo de hash resistente coliso, a premissa
apresentada implica que a probabilidade de M aceitar o protocolo de
pagamento enquanto que C no conhece a representao de ambos X e Y
com respeito (g1, g2) desprezvel. Assim, C s pode enviar um pagamento
por e-Coins se e somente se ele conhece a representao delas.

Protocolo de Depsito: Quando C ou MO deseja enviar e-Coins para o


agente bancrio B, o processo inicia-se com o envio de uma cpia do
pagamento, que consiste de X, Y, assinatura de (X,Y), (r1, r2) e o tempo da
transao. Se X = 1, ento B no aceitar o depsito. Caso contrrio, B
computa d usando a identificao do cliente ou do mercado on-line presente na
base de dados do agente bancrio. B ento verifica se e que se a
assinatura de (X,Y) vlida. Se uma das verificaes for falsa ento B no
aceita o depsito. Caso contrrio, B procura em sua base de dados de
depsitos por valor X que tenha sido armazenado antes. Se X no tiver sido
armazenado B armazena (X, tempo, r1, r2) e sua base de dados de depsitos
relacionada a C ou MO, e adiciona crditos na conta de um ou de outro. Se X
tiver sido encontrado ento pode-se identificar um double-spending.

Para algum cliente C e para algum agente bancrio B, a execuo do


protocolo de retirada no qual C requer as e-Coins, e para algum mercado on-
line MO, executando um protocolo de pagamento descrito, ento existe
exatamente um conjunto de escolhas aleatrias que C deve fazer ao executar o
protocolo de retirada tal que a perspectiva de B e MO correspondem a retirada
e pagamento de uma mesma e-Coin. Assim, assumindo a hiptese do
problema do logaritmo discreto, se C segure os protocolos descritos e no
pratica double-spending, B no pode computar a prova de double-spending.

56
O esquema de dinheiro eletrnico inclui ento trs protocolos bsicos:
de retirada, de pagamento, de depsito, alm de dois protocolos adicionais:
protocolo de rastreamento de proprietrio e protocolo de rastreamento de
moeda.

O protocolo de rastreamento de proprietrio responsvel por traar a


identidade do dono de uma e-Coin especifica. Neste protocolo o agente
bancrio autorizado constitui um agente de confiana que executa uma vistoria
nos protocolos de depsito. O agente de confiana retorna um valor que
contm a informao da identidade utilizada no depsito. O rastreamento de
proprietrio tem por objetivo ento permitir que uma autoridade verifique uma
transao, podendo encontrar fraudes mesmo se j tiverem acontecido, e
encontrar a origem da fraude.

O rastreamento de moeda busca encontrar a origem de uma retirada,


neste protocolo um agente de confiana, dada uma referncia a uma retirada
do agente bancrio, retorna alguma informao que originou a retirada, O
agente bancrio pode usar esse valor retornando para encontrar a e-Coin
acessando as referncias dos protocolos de depsito.

4.9 e-Wallets

Ao longo da histria as pessoas utilizam as carteiras para armazenar e


proteger documentos e dinheiro. Com o advento da tecnologia e com a
ascenso do comrcio eletrnico idealiza-se uma estrutura eletrnica de
armazenamento de e-Cash capaz de fomentar agilidade, confiabilidade,
integridade e segurana para transaes entre usurios do sistema. Sugerem-
se ento as e-Wallets, que so softwares responsveis por garantir isso.

As e-Wallets so pequenos bancos de dados que podem armazenar


informaes pessoais, como registro geral eletrnico, e-cpf, ou informaes
mdicas. A finalidade trafegar essas informaes utiliz-las da forma como
so utilizadas hoje, porm com mais preciso, disponibilidade e segurana,
para tanto algumas coisas devem ser garantidas: 1) As informaes contidas
em uma e-Wallet devem corresponder a fatos verdicos. 2) Indivduos querem

57
ter certeza que as informaes so verdadeiras e que cada um s pode ler ou
atualizar dados aos quais lhes so dadas permisses.

Outro requisito bsico na estruturao de uma e-Wallets que deve-se


garantir aos usurios que possam realizar transaes annimas. Imagina-se
por exemplo a situao em que se queira solicitar o diagnstico de alguma
informao mdica que ele possua em sua e-Wallet e o usurio requeira que
isso seja feito anonimamente por um motivo qualquer. Nesse cerne englobam-
se transaes envolvendo e-Cash no qual a mesma anonimidade deva ser
garantida.

Chaum (1993) define uma e-Wallet como uma estrutura formada por
duas partes:

Um pequeno dispositivo controlado por um usurio;


Um mdulo a prova de fraude, emitido por uma terceira parte
certificadora.

Essas duas partes so organizadas de tal forma que o mdulo


comunica-se apenas com o software e no tem nenhuma comunicao com o
meio externo, assim toda comunicao com o meio externo feita por uma
interface do dispositivo.

O dispositivo computacional mencionado por Chaum (1993) consiste em


um computador sobre o qual um usurio tem total controle, e assim pode
deletar ou modificar qualquer dado. Nesse dispositivo possvel um nvel de
privacidade de forma eficiente usando tcnicas de criptografia e de no
rastreabilidade de dados. Tais tcnicas garantem o sigilo das informaes,
contudo, dado que o usurio tem controle total sobre o dispositivo, nada o
impediria de deletar alguma informao, ou mesmo duplica-la (como o caso
da tcnica de double-spending), comprometendo a integridade dos dados.

Um mdulo a prova de adulterao (do ingls: tamper-proof module)


permite ao usurio garantir ao meio: integridade e autencidade nos dados
manipulados, isso porque existe uma terceira parte, de confiabilidade atestada,
que garante isso. Mesmo que um usurio use de subterfgios para deletar,
modificar ou criar alguma informao na prxima vez que o mdulo seja usado,

58
a entidade certificadora ir detectar a fraude. A desvantagem de usar um
mdulo prova de adulterao puro que os usurios no tm controle sobre
a troca de mensagens entre mdulos.

A e-Wallet proposta pro Chaum (1993) combina a essncia de um


dispositivo computacional controlado pelo usurio e do mdulo a prova de
fraude mantido por uma terceira parte. Tal e-Wallet consiste de um computador
(seja um celular, PDA, tablets ou afins) controlado pelo usurio, com uma
unidade interna que nada mais do que um mdulo prova de falhas que
garante em nome da entidade certificadora que o computador em questo no
pode modificar protocolos de comunicao previamente implementados ou
mudar alguma informao na base de dados.

Algumas propriedades devem ser seguidas na construo de uma e-


Wallet nesses parmetros:

O dispositivo computacional deve ser capaz de se comunicar com o


meio utilizando de protocolos j apresentados;
O mdulo prova de adulterao no pode ser capaz de interceptar
mensagens entre dispositivos, cabe a ele apenas aprovar ou no tal
comunicao caso a mesma siga os protocolos de segurana pr-
determinados.
4.9.1 Assinaturas Cegas em e-Wallets

Denotando uma terceira parte certificadora por C, tal que C consiga


assinar um dado qualquer. A chave pblica de C definida por Cp e sua chave
secreta . Define-se ainda o dispositivo computacional por D e M
o mdulo prova de adulterao. Por sua vez, H uma funo hash. O
esquema de assinatura cega Ac definido como segue:

Algoritmo 12 - Assinatura Cega em e-Wallet


1. D escolhe um fator t Zq aleatoriamente e envia m0 = mt para C;
2. C e D escolhem e tal que somente C conhece e
;
3. C computa e envia para D;
4. D computa e escolhe u e v aleatoriamente. D envia ( , , c, u, v, t)
para M;
5. Ambos, D e M, podem computar , ,

59
e . M assina e envia a D;
6. M verifica a assinatura antes de enviar a assinatura a C;

4.9.2 ECML Linguagem de Modelagem de Comrcio Eletrnico

Como visto, um sistema de numerrio eletrnico necessita de constante


troca de informao. Para garantir um padro, a IEEE proporciona a RFC 4112
que especifica uma hierarquia organizada para sintaxes de arquivos de
configurao relacionados a e-Wallets. Essa estruturao prov um conjunto
de estrutura de dados que habilitam a construo de softwares para o fim de
armazenamento e comunicao de e-Cash ou documentos eletrnicos.

A ECML foi ento concebida para proporcionar uma linha de


base simples til em vrios contextos. Os provveis usos desse modelo so na
estruturao de informaes de pagamento, operaes de entrada e retirada
de e-Coins. A linguagem mais idnea para uma implementao adequada,
segundo a RFC, o XML.

4.10 Consideraes Finais

Este captulo apresentou os principais pontos com relao a numerrio


eletrnico, seus conceitos sobre no rastreabilidade, e-Cash on-line e off-line.
Foram apresentadas as descries dos atores envolvidos em um sistema de
numerrio eletrnico bem como os protocolos bsicos que devem ser
implementados que correlacionam esses atores. Em seguida foi apresentado o
conceito bsico sobre e-Wallet, uma estrutura eletrnica capaz de gerir os
protocolos apresentados.

60
5. Proposta de Esquema Criptogrfico para Numerrio
Eletrnico off-line

Neste captulo, prope-se uma justificativa do uso de criptografia


baseada em curvas elpticas em um sistema de numerrio eletrnico, bem
como a apresentao de um esquema criptogrfico baseado nessas curvas
aplicado a numerrio eletrnico. A proposta utilizar os conhecimentos
apresentados para formular algoritmos e fluxogramas que compem um
sistema de dinheiro eletrnico. Sero apresentadas rotinas de criao, retirada,
troca, pagamento e depsito de e-Coins, bem como a estrutura bsica para a
construo de uma e-Wallet moldada nos protocolos apresentados.

5.1 Uso de ECC em sistemas e-Cash

No captulo 3, um comparativo foi realizado entre implementaes de


esquemas criptogrficos baseados em curvas elpticas e o j consolidado RSA.
Baseado nessa comparao o uso de criptografia com curvas elpticas
justificado para sistemas e-Cash, ento se assume dois pontos fundamentais:
segurana e economia de recursos computacionais.

No que se refere segurana foram exibidas provas de segurana dos


algoritmos de assinatura ECDSA e de encriptao ECIES que garantem que,
dado o problema do logaritmo discreto sobre curvas elpticas, i.e. ECDLP,
intratvel solucion-lo em tempo polinomial.

Mesmo sendo um problema relativamente novo quando comparado com


problemas matemticos milenares como a fatorao de inteiros, j existem
inmeros esforos de padronizao em vrias instituies para garantir que
sistema baseado em ECC verdadeiramente seguros sob algumas condies.
A seguir so listados alguns padres relevantes nesse aspecto:

IEEE 1363: Este padro contm virtualmente todos os algoritmos de


chave pblica. Em particular, abrange o ECDSA e o ECIES;
ANSI X9.62 e X9.63: Estes dois padres abrangem especificamente
no uso de curvas elpticas em algoritmos de criptografia. Em ambas
as especificaes ele lista um conjunto de curvas a serem usadas;

61
FIPS 186.2: Este padro fora formulado pelo NIST para assinaturas
digitais, no qual especifica o ECDSA e da uma lista de curvas
recomendadas. Esse padro uma extenso do FIPS 186 que
definia apenas o DAS;
ISO: Existem dois padres ISO relevantes no que tange as curvas
elpticas: ISO 15946-2 a respeito do ECDSA e um projeto de padro
ISO sobre variantes do ECIES chamado de ECIES-KEM.

No que se refere economia de recursos, ECC possui esquemas com


chaves consideravelmente menores e processamento sobre curvas com tempo
consideravelmente menor do que em outros esquemas. O mais difcil esquema
j implementado publicamente que fora quebrado tinha uma chave de 112 bits
para corpos de ordem prima. Os recursos empregados para esse tarefa foram
a utilizao de 200 video-games Playstation 3 reunidos em um cluster durante
3 meses e meio usando um processamento contnuo (LACAL, 2002). Para
corpos de ordem binria com chaves de 102 bits foram utilizados 2600
computadores durante 17 meses (COX, 2004).

Devido a esses testes o ECC tem sido reconhecido como um algoritmo


forte para dados comprimentos de chaves em ambientes de recursos limitados
de armazenamento de dados e de banda j que seu processamento e o
armazenamento de chaves so relativamente menores.

Nesse contexto sua aplicabilidade em numerrio eletrnico


amplamente recomendada j que se est falando em dispositivos de
processamento limitado como smartphones e tablets que mesmo com o avano
que tm tido nos ltimos anos tm em mdia um processador dual core de
1Ghz (FILHO, 2012). De acordo com o avano tecnolgico e a necessidade
real e gradual do uso de chaves cada vez maiores utilizando o RSA,
alternativas so necessrias principalmente para sistemas novos e que
necessitam de uma extrema segurana como o caso do e-Cash.

5.2 Escopo da Proposta

A definio do escopo se segue ao entendimento dos objetivos e


limitaes do projeto, dos resultados esperados e descrio sumria do

62
trabalho a ser realizado. Em um sistema e-Cash definir o escopo
extremamente importante no que tange a abrangncia dos conceitos
apresentados.

O projeto de sistema e-Cash definido neste trabalho est limitado no


mbito de um sistema monetrio nacional. Abranger mercados internacionais
significa idealizar casas de cmbios eletrnicas. Tais casas de cmbio seriam
responsveis pela converso de unidades monetrias eletrnicas de um pas
em outras unidades, esto atreladas s casas de cmbio funes de
manuteno de taxas de converso e de compatibilidade de dados.

Abranger transaes internacionais significa compatibilizar todos os


sistemas criptogrficos que envolvem e-Cash e foge do escopo deste trabalho,
sendo objeto de estudo para trabalhos futuros na mesma linha desta
dissertao.

Outro aspecto a se levar em considerao o controle monetrio no que


se refere criao, manuteno e destruio de dinheiro para o equilbrio da
economia. Existe hoje um nico agente que cria e destri unidades monetrias
no Brasil. As operaes de aumento ou diminuio de reservas do sistema
bancrio so feitas atravs da compra ou venda pelo Banco Central de ttulos
pblicos. Tais elementos devem ser considerados em um sistema monetrio
eletrnico, vale ento lembrar que a criao, renovao e revogao de e-
Coins deve ficar a cargo de uma estrutura superior como Banco Central.

5.3 Estrutura Organizacional

Para construir um sistema de dinheiro eletrnico alguns atores devem


ser definidos. Como fora apresentado de forma terica, os principais atores
desse sistema so: Agente Bancrio Central (BC), Agente Bancrio Autorizado
(BA), Mercados On-line (MO) e Clientes (C).

O Agente Bancrio Central pode ser caracterizado como instituies


com o poder de criao, validao e revogao de todo o sistema. Ao BC
atribuda a funo de criar as e-Coins, de tal forma que qualquer entidade do
sistema consiga validar a integridade e autenticidade deste dado. Os
protocolos relacionados aos agentes bancrios so: Criao, Retirada e

63
Depsito de e-Coins. Uma e-Coin criada por BC um conjunto de dados criado
e assinado, ele referencia uma unidade monetria, ou seja, cada e-Coin
representa uma unidade do mundo real, essa relao de-para aplicada para
facilitar as transaes.

5.3.1 Protocolo de Criao de e-Coins

O protocolo de criao o incio do fluxo do sistema, BC utiliza de um


fator sequencial, que torna o valor nico e em seguida usa um algoritmo de
assinatura para garantir a autenticidade da e-Coin. A estrutura de uma e-Coin
descrita a seguir:

Tabela 2 - Estrutura de uma e-Coin


Atributo Tipo Descrio
HASH_SEQ_VAL Alfanumrico Atributo que representa
um hash de um valor
sequencial.
ID_AG_BC Inteiro Referente a identificao
do Agente Bancrio
Central que produziu a e-
Coin.
C_DATE_COIN Data Data de criao da e-Coin.
SIGN_BC_COIN Alfanumrico Assinatura do agente
bancrio central referente
a e-Coin.
SIGN_BA_COIN Alfanumrico Assinatura do agente
bancrio autorizado.

O campo HASH_SEQ_VAL gerado a partir de uma funo hash


unidirecional de um valor inteiro N que, por sua vez, pertence a uma
sequencia mantida pelo agente bancrio central. Para garantir a unicidade da
e-Coin, o protocolo gera uma data de criao, bem como o uso de um valor
sequencial. A assinatura da e-Coin armazenada no campo SIGN_BC_COIN,
esse atributo permite que qualquer usurio de posse da chave pblica do
agente bancrio central possa verificar se a e-Coin verdadeira. Seja T o
conjunto de valores inteiros sequenciais, H uma funo hash que pode receber
n parmetros, e ECDSA o protocolo de assinatura digital baseada em curvas
elpticas, ento o protocolo de criao descrito a seguir:

64
Algoritmo 13 - Protocolo de Criao de e-Coins
1. BC seleciona um valor onde T representa um conjunto de valores
inteiros suficientemente grandes e sequenciais;
2. BC computa h0 = H(x);
3. BC armazena h0 em sua base de dados. Esse processo serve para uma
possvel auditoria;
4. BC computa h1 = H(x, BC_ID, TIME), onde BC_ID um identificador do agente
bancrio central e TIME o tempo atual. Notar que H probabilstico;
5. BC computa sign = ESDSA(h1);
6. BC monta a estrutura e-Coin = (h0, BC_ID, TIME, sign).

5.3.2 Protocolo de Retirada de e-Coins

O protocolo de retirada de e-Coins ocorre quando um usurio deseja


retirar unidades monetrias de sua conta bancria na forma de e-Coins. Seja
ento BA um agente bancrio autorizado. Para solicitar uma quantidade de e-
Coins o agente bancrio autorizado monta uma requisio R cuja estrutura
descrita como segue:

Tabela 3 - Estrutura de Requisio de e-Coins por Agentes Bancrios


Autorizados
Atributo Tipo Descrio
SEQ_VAL Inteiro Atributo sequencial que
torna nica a requisio.
ID_AG_BA Inteiro Referente a identificao
do Agente Bancrio
Autorizado.
C_DATE_REQUEST Data Data da requisio.
AMOUNT_COIN Inteiro Quantidade solicitada de
e-Coins.
SIGN_BA_REQUEST Alfanumrico Assinatura do agente
bancrio autorizado
referente requisio.

A estrutura da requisio pretende garantir que a solicitao seja nica,


ntegra, auditvel e no repudivel. O campo SIGN_BA_REQUEST garante ao
agente bancrio central que a solicitao parte realmente de um agente
bancrio autorizado. Seja ento RBA uma requisio de e-Coins por parte de
um agente bancrio autorizado, ECIES o algoritmo de encriptao padro
baseado em curvas elpticas ento o algoritmo de retirada descrito a seguir:

65
Algoritmo 14 - Protocolo de Retirada de e-Coins por Agentes Bancrios
Autorizados
1. BC publica sua chave pblica pBC;
2. BA publica sua chave pblica pBA;
3. BA monta a requisio informando a quantidade de e-Coins
4. BA computa h0 = H(SEQ_VAL, ID_AG_BA, TIME, AMOUNT), onde os
parmetros so anlogos aos atributos da estrutura da requisio de e-Coins;
5. BA assina a requisio RBA com sua chave privada sign = ECDSApkba(h0) e
envia RBA a BC;
6. BC valida a requisio RBA;
7. BC verifica se a quantidade solicitada em RBA est presente na conta de BA;
8. Caso afirmativo, BC efetua a criao de e-Coins que suprem a requisio;
9. BC gera uma chave simtrica privada pk;
10. BC encripta as e-Coins atravs do algoritmo ECIES com a chave privada pk.
11. BC monta uma mensagem de resposta que contm as e-Coins solicitadas e
encriptadas e uma assinatura da resposta;
12. BA valida a assinatura de BC;
13. BA valida a quantidade de e-Coins;
14. BA envia uma mensagem afirmativa ou negativa de acordo com a validao da
quantidade;
15. Caso a mensagem seja afirmativa ento BC encripta a chave privada pk com a
chave pblica pBA; z = ECIESpba(pk);
16. BC debita o valor monetrio da conta bancria de BA;
17. BA decripta z e obtm a chave privada pk e assim obtm as e-Coins.

O algoritmo 14 pretende garantir que o sistema mantenha integridade de


dados e a autenticidade das partes. Isso depender da criao de um cadastro
prvio dos agentes bancrios autorizados junto ao agente bancrio autorizado,
que associa uma identificao do BA a sua chave pblica. Dessa forma, o
agente bancrio central pode garantir a identidade da chave pblica, ou seja,
pode garantir que no existem outras instituies fazendo se passar pelo
agente bancrio autorizado para obter e-Coins vlidas. O fato que, devido s
propriedades da criptografia de chave pblica e de instituies que garantam a
unicidade da identidade de um banco e sua chave pblica, ento pode-se
garantir que, dada uma requisio R que foi originada de X, ento a assinatura
da requisio garante que sua autenticidade Rx garantida pela identificao
presente em ID_AG_BAx e SIGN_BA_REQUESTx.

Dado que um agente bancrio autorizado possui um nmero de e-Coins,


ento um cliente C pode efetuar retiradas de unidades monetrias eletrnicas.
A retirada condicionada :

Existncia de uma conta bancria;

66
Existncia de um pr-cadastro que associa a conta bancria a uma
chave pblica;
Existncia de fundos na conta bancria.

O protocolo de retirada proposto baseado ento em uma troca de


requisies e respostas assinadas pelas partes. O modelo de requisio de e-
Coins pelos clientes semelhante ao proposto na tabela 3 e descrita a
seguir:

Tabela 4 - Estrutura da Requisio de e-Coins por Clientes


Atributo Tipo Descrio
SEQL_VAL Inteiro Referente a um campo
sequencial que
juntamente com a
identificao do cliente
tornam cada requisio
nica.
ID_CLIENT Inteiro Referente identificao
do Cliente junto ao
Agente Bancrio
Autorizado.
PASSWORD_CLIENT Inteiro Senha utilizada para ter
acesso a dados da conta
bancria.
C_DATE_REQUEST Data Data da requisio.
AMOUNT_COIN Inteiro Quantidade solicitada de
e-Coins.
SIGN_CLIENT_REQUEST Alfanumrico Assinatura do cliente
referente requisio.

Na estrutura demonstrada, o campo ID_CLIENT refere-se a uma


identificao do usurio junto ao banco. Para efeito de simplificao considera-
se para esse campo o nmero da conta bancria do usurio, o que mantm
uma compatibilidade com os sistemas dos bancos atuais. O campo
PASSWORD_CLIENT, assim com o campo anterior, para efeitos de
simplificao, refere-se senha de acesso do cliente aos seus dados
bancrios. O Agente bancrio autorizado deve enviar uma resposta ao cliente
que descrita a seguir:

Tabela 5 - Estrutura da Resposta Requisio de e-Coins


Atributo Tipo Descrio
ID_AG_BA Inteiro Referente identificao
do Agente Bancrio

67
Autorizado.
ID_RESPONSE Inteiro Valor que identifica cada
resposta. Juntamente com
a identificao do agente
bancrio tornam cada
resposta nica.
ID_REQUEST Inteiro Referente identificao
da requisio.
C_DATE_RESPONSE Data Data da resposta
requisio.
E_COIN_AMOUNT Inteiro Quantidade e-Coins que
presentes na resposta.
ECIES(e-Coin) Estrutura e-Coin Uma quantidade
encriptada de e-Coins
referente requisio.
SIGN_BA_RESPONSE Alfanumrico Assinatura do agente
bancrio autorizado
resposta.

O protocolo de retirada utiliza os protocolos de encriptao ECIES e o


protocolo de assinatura digital ECDSA, o algoritmo descrito a seguir:

Algoritmo 15 - Protocolo de Retirada de e-Coins por Clientes


1. C monta a requisio informando sua identificao, senha e quantidade de e-
Coins;
2. C computa h0 = H(ID_CLIENT, TIME, AMOUNT_ COIN);
3. C assina a requisio Rc com sua chave privada sign = ECDSApkc(h0) e envia
Rc a BA;
4. BA valida a requisio Rc;
5. BA verifica se a quantidade solicitada em Rc est presente na conta de C;
6. Caso afirmativo, BA obtm de sua base de dados de e-Coins a quantidade
solicitada que suprem a requisio;
7. BA gera uma chave simtrica pk;
8. BA encripta as e-Coins usando a chave privada pk;
9. BA monta uma mensagem de resposta baseada na estrutura demonstrada na
tabela 5;
10. BA assina e envia a mensagem de resposta ao cliente C;
11. C valida a assinatura de BC atravs do campo SIGN_BA_RESPONSE;
12. C valida a quantidade de e-Coins;
13. C envia uma mensagem afirmativa ou negativa de acordo com a validao da
quantidade;
14. Caso a mensagem de C seja afirmativa ento BC encripta a chave privada pk
com a chave pblica do cliente pbc: z = ECIESpbc(pk);
a. BC envia z para C e debita os valores da conta bancria do cliente;
b. C decripta a mensagem z para obter a chave privada pk e assim obtm
as e-Coins.
15. Caso a mensagem de C seja negativa ento:
a. C executa o protocolo de revogao de transao;
b. BC decripta as e-Coins provenientes do protocolo de revogao;
c. BC atualiza o saldo da conta bancria do usurio e armazena as e-
Coins.

68
O algoritmo proposto visa a integridade da transao, isto , quando um
cliente solicita uma quantidade de e-Coins, as mesmas so retiradas da base
de dados do agente bancrio, porm uma validao do cliente necessria
para que essas e-Coins estejam disponveis para o cliente. No protocolo
apresentado um algoritmo de revogao de transao, de modo que tal
algoritmo deve ser executado quando o cliente atestou alguma irregularidade
na transao, seja por uma assinatura invlida ou uma quantidade divergente
da requisio. O protocolo de revogao descrito a seguir:

Algoritmo 16 - Protocolo de Revogao de Transao

Entrada: ID_CLIENT, ID_REQUEST, ID_RESPONSE, ECIES(e-Coin),


AMOUNT_E_COIN
Sada: Verdadeiro ou Falso.

1. C solicita a revogao da transao para o agente bancrio autorizado.


2. BA identifica a transao atravs do ID_CLIENT e ID_REQUEST;
3. BA gera a chave simtrica pk;
4. BA decripta as e-Coins encriptadas;
5. BA atualiza os nmeros da conta bancria do cliente;
6. BA reinsere as e-Coins em sua base de dados;
7. BA envia uma mensagem afirmativa caso o processo tenha sido executada
com sucesso.

5.3.3 Protocolo de Troca

Em um sistema econmico, um dos processos mais utilizados a


permuta de unidades monetrias entre usurios, ou seja, existe a troca de
dinheiro entre as pessoas. Um sistema monetrio eletrnico deve contemplar
esse processo. Existem algumas implicaes nesse protocolo, no mundo real,
usurios trocam artefatos fsicos que podem ser validados em tempo real por
algumas caractersticas como descritas na Figura 3:

69
Figura 3 - Demonstrativo de uma nota real

70
A nota real demonstrada na Figura 3 repleta de elementos que
garantem sua autenticidade, entre eles um nmero de srie garante que a nota
est includa em uma produo em sequncia. Outros aspectos so as marcas
dgua presentes em toda a nota. O dinheiro eletrnico deve criar uma
analogia, ou seja, o dinheiro real garante ao usurio que a nota real, assim o
e-Cash deve garantir isso tambm. As assinaturas digitais criadas sobre a e-
Coin e assinatura do agente bancrio central garantem respectivamente o
nmero de srie e a identificao do agente bancrio central.

Esses aspectos somados garantem aos usurios que, ao efetuar trocas


de valores, esto utilizando dinheiro vlido. Atribuir esse conceito ao dinheiro
eletrnico uma tarefa complicada j que o principal problema o double-
spending: um usurio A sabe se a e-Coin que est recebendo do usurio B
realmente verdadeira, j que para isso basta verificar a assinatura da moeda
eletrnica. Porm, em um ambiente computacional, os dados podem ser
replicados, e assim uma mesma moeda pode, em tese, ser gasta em dois
pontos e mesmo assim serem consideradas vlidas em um ambiente off-line.

necessrio ento construir um protocolo de troca de e-Coins que


garanta anonimidade, autenticidade e segurana contra double-spending.
Protocolos atuais se baseiam na utilizao de uma terceira parte, seja um
agente bancrio ou um mercado on-line, que valida cada transao e assim
evitaria em tempo real que uma mesma moeda seja gasta mais de uma vez.
Um protocolo de troca de e-Coins no pode ser baseada apenas na idoneidade
de todos os usurios do sistema, porque um ambiente assim seria utpico. Tal
protocolo deve ento garantir que, na presena de um atacante, ou de um
fraudador, o sistema seja capaz de coibir tais atitudes. Utiliza-se portanto
tcnicas amplamente empregadas em transaes econmicas com
observadores utilizadas em muitos sites de leiles on-line e tambm em
tcnicas de ataques como homem-no-meio.

Mdulo Observador um software sigiloso que no pode ser acessado


pelo usurio, e deve funcionar como um observador como descrito no tpico
sobre e-Wallets. Em suma, o software funciona com um homem-no-meio
auditando e validando cada transao, ou seja, cada vez que um protocolo de

71
troca acionado, o mdulo executado para verificar a unicidade da e-Coin,
bem como para analisar se houve uma transao com aquela moeda
eletrnica. O mdulo descrito a seguir:

Tabela 6 - Estrutura do Mdulo Observador e Validador


Atributo Tipo Descrio
ID_MODULO Inteiro Descreve uma
identificao nica para o
mdulo.
ID_CLIENT Inteiro Identifica o cliente junto
ao mdulo, assim cada
usurio possui apenas um
mdulo.
SIGN_BA Alfanumrico Assinatura digital que
garante que esse mdulo
fora gerado por um
agente bancrio
autorizado.
CREATE_DATE Data Data de criao do
mdulo
TRANSACTION_TABLE Tabela Tabela que contm dados
das transaes que o
mdulo presenciou.

O mdulo, denotado por ML, deve ser um sistema que s acessado


pela e-Wallet, ou seja, rotinas de proteo dos dados devem garantir a
inacessibilidade deles, ou pelo menos, a identificao de uma possvel
tentativa. Garantir isso um trabalho complexo, porm vivel quando se utiliza
de tcnicas de criptografia e segurana dos dados. Alm de proteo por meio
de permisses junto ao hardware, a idia envolve tambm a criao de um
algoritmo de checagem de integridade do mdulo. Para verificar a integridade
do mdulo e, por consequncia, das transaes realizadas por uma e-Wallet,
ento o algoritmo de verificao executado, dado um usurio X que solicita a
verificao, um algoritmo de checagem de assinatura denotado por Check,
uma chave pblica PB, uma assinatura S, e as datas de criao e modificao
do mdulo:

Algoritmo 17 - Protocolo de Verificao de Integridade do Mdulo

Entrada: ML, BA_PUBLIC_KEY


Sada: Verdadeiro ou Falso.

1. Um usurio X solicita a e-Wallet informaes de criao e modificao do

72
cdigo de ML;
2. A e-Wallet gera uma mensagem resposta R com data de criao e data de
modificao do mdulo (D1 e D2) e envia R ao usurio X;
3. X computa t = CheckPB(D1, D2, S);
4. Retorna t;

Como descrito, o fluxo do dinheiro eletrnico passa pela criao das e-


Coins e em seguida pela sua retirada pelo usurio. Uma troca portanto
quando um usurio deseja passar essa e-Coin para um outro usurio, de tal
forma que essa transao pode ser on-line ou no. Transaes on-line so
mais simples de serem executadas j que se pode solicitar a uma terceira parte
(no caso um agente bancrio autorizado) que valide cada moeda eletrnica.
Essa validao passa pela checagem de autenticidade e integridade da mesma
bem como a deteco de double-spending. Essa verificao torna
desnecessria a utilizao do mdulo observador, que executado apenas
para gerar logs para futuras transaes.

Transaes off-line so de certa forma complexas j que no existe a


chamada a uma entidade certificadora autorizada (como um banco, por
exemplo). Nesse ponto a utilizao do mdulo observador de suma
importncia. Dados os usurios A e B, ID_A e ID_B as identificaes de A e B
junto ao agente autorizador, PBA e PBB suas chaves pblicas e ENCpk um
algoritmo de encriptao simtrico, ento o protocolo de troca descrito a
seguir:

Algoritmo 18 - Protocolo de Troca de e-Coins

1. B monta uma requisio RB0 solicitando q e-Coins. A requisio uma tupla


(ID_REQUEST, q, ID_B, ECDSA(q, ID_B) e envia a A;
2. A de posse de PBB valida a requisio;
3. A seleciona q e-Coins de sua base de moedas eletrnicas;
4. A gera uma chave simtrica pk e computa c = ENCpk({x1, x2, ..., xq}) onde x1, x2,
..., xq so e-Coins;
5. A gera uma resposta RA que a tupla (ID_RESPONSE, c, q, ID_B, ECDSA(q,
ID_A)) e envia a B;
6. B atesta a quantidade;
a. Caso afirmativo ento:
i. B computa: s = ECDSA(c);
ii. B monta uma requisio assinada RB1 a A. RB1 uma tupla: (s,
q, ID_RESPONSE);
iii. A envia ao mdulo observador a assinatura s e ID_RESPONSE.
Internamente o mdulo observador verifica se no existe alguma

73
assinatura s idntica a alguma transao que contenha as
mesmas e-Coins representadas por ID_RESPONSE;
1. Caso mdulo observador retorne verdadeiro, atestando a
veracidade da transao. A encripta a chave simtrica pk
computando k = ECIESPBB(pk) e envia para B;
2. B decripta k obtendo pk e em seguida decripta c;
3. B envia ao seu mdulo observador s e ID_RESPONSE
para armazenamento.
4. Caso o mdulo observador retorne falso uma mensagem
enviada a B informando da fraude;
b. Caso negativo ento:
i. B executa o protocolo de revogao de transao.

5.3.4 Protocolo de Pagamento

O pagamento acontece quando um cliente C necessita utilizar suas e-


Coins para efetuar um pagamento junto a um mercado on-line MO. Esse
processo dito on-line j que a utilizao do mdulo observador ML
substituda pela validao do agente bancrio autorizado BC. Nesse processo
dois procedimentos so executados: o primeiro a validao do mdulo
observador por parte de BC; e o pagamento de fato.

No primeiro procedimento, MO executa o protocolo de validao de


integridade de ML. Em caso afirmativo, MO envia uma requisio ao agente
bancrio que valide as e-Coins do cliente, essa validao passa pela
checagem de integridade das moedas bem como pela checagem da base de
dados de ML. Dessa forma o mercado on-line tem certeza de que as e-Coins
que venha a receber so verdadeiras e nicas. Vale lembrar que a checagem
de um agente bancrio pode ser solicitada em qualquer momento, o que
garante preciso e idoneidade, porm necessita de uma conexo on-line com o
agente, o que foge do escopo desse esquema.

O segundo procedimento, o de pagamento, tem uma peculiaridade em


relao aos outros protocolos, j que deve existir uma forma de garantir que as
duas partes agiram com corretude, isto , o cliente efetuou o pagamento e o
mercado on-line entregou o bem ou servio. Sugere-se, portanto, que o mdulo
observador guarde informaes do bem ou servio, isso pode ser garantido
com algum pr-cadastro semelhante ao cadastro NCM, que nada mais do
que um cdigo utilizado na Amrica Latina que unifica produtos em

74
determinadas categorias. A estrutura da requisio de pagamento descrita a
seguir:

Tabela 7 - Estrutura da Requisio de Pagamento


Atributo Tipo Descrio
ID_REQUEST Inteiro Valor sequencial que
identifica a resposta.
ID_M Inteiro Identificao nica para o
mercado on-line.
PRODUCT_STRUCT STRUCT Refere-se a n tuplas que
identificam produto e
quantidade. Sugere-se a
utilizao do nmero
NCM.
E_COIN_AMOUNT Inteiro Descreve uma quantidade
de e-Coins solicitada.
SIGN_M_REQUEST Alfanumrico Descreve a assinatura do
digital da requisio.

Na estrutura da requisio de pagamento, os campos SEQ_VAL, ID_M


garantem a unicidade da solicitao. No campo PRODUCT_ID recomendada
a utilizao do valor NCM, porm o mesmo utilizado apenas para gerar logs
para possveis auditorias. Seja PBM a chave pblica de M, ID_C a
identificao do cliente junto ao agente bancrio autorizado. Ento o protocolo
de pagamento descrito a seguir:

Algoritmo 19 - Protocolo de Pagamento

1. MO monta uma requisio RM0 solicitando E_COIN_AMOUNT e-Coins pelos


bens e servios representados por PRODUCT_STRUCT.
2. C de posse de PBM valida a requisio;
3. C valida visualmente a estrutura de produtos que foram ofertados;
4. C seleciona E_COIN_AMOUNT e-Coins de sua base de moedas eletrnicas;
5. C gera uma chave simtrica pk e computa c = ENCpk({x1, x2, ..., xq}) onde x1, x2,
..., xq so e-Coins;
6. C gera uma resposta Rc que a tupla (ID_RESPONSE, c, q, ID_M, ECDSA(q,
ID_C)) e envia a MO;
7. MO atesta a quantidade de e-Coins e envia verdadeiro ou falso a C;
a. Caso verdadeiro ento:
i. C computa: s = ECDSA(c);
ii. C monta uma requisio assinada Rc0 a MO. Rc0 uma tupla: (s,
q, ID_RESPONSE);
iii. C executa o mdulo observador assim como no algoritmo 17:
1. Caso o mdulo observador retorne verdadeiro, atestando
a veracidade da transao, C encripta a chave simtrica
pk computando k = ECIESPBM(pk) e envia para MO;
2. B decripta k obtendo pk e em seguida decripta c;

75
3. B envia ao seu mdulo observador s e ID_RESPONSE
para armazenamento.
4. Caso o mdulo observador retorne falso, uma
mensagem enviada a MO informando da fraude;
b. Caso negativo ento:
i. MO executa o protocolo de revogao de transao.
8. Quando MO recebe as e-Coins as mesmas so enviadas ao agente bancrio
autorizado, executando o protocolo de depsito descrito a posteriori.

5.3.5 Protocolo de Depsito

O depsito o procedimento que ocorre quando um cliente ou mercado


on-line solicita a troca das e-Coins junto ao agente bancrio autorizado, seja
por dinheiro real, ou por acrscimo no saldo de sua conta bancria. Portanto o
processo realizado de forma on-line, com verificao direta pelo agente
bancrio autorizado. O processo de depsito caracteriza-se pela validao do
mdulo observador, que garante que as e-Coins no foram duplicadas. Como a
transao ocorre com um agente bancrio autorizado, algumas verificaes
so consideradas obsoletas. Seja X um cliente ou mercado on-line, Pbank a
chave pblica do agente bancrio autorizado BA, o protocolo de depsito
descrito a seguir:

Algoritmo 20 - Protocolo de Depsito

1. X seleciona q e-Coins que deseja depositar em sua conta bancria;


2. X computa z = ECIESPbank({x1, x2, ..., xq}) onde x1, x2, ..., xq so e-Coins;
3. X assina a requisio s = ECDSA(q, z);
4. X monta a requisio R que consiste na tupla (ID_X, q, z, s, ML) e envia a BA;
5. BA valida a assinatura s;
6. BA decripta z obtendo o conjunto de e-Coins;
7. BA verifica a autenticidade e integridade das e-Coins;
8. BA verifica se as e-Coins no foram adicionadas a alguma conta bancria;
9. BA verifica se aquelas e-Coins esto presentes em transaes em ML;
10. Caso todas as validaes sejam verdadeiras ento BA adiciona as e-Coins a
conta bancria identificada por ID_X.

Para fins de segurana, o agente bancrio solicita uma cpia dos dados
do mdulo observador para que se mantenham cpias de segurana, e assim
garantindo que as transaes e casos extremos possam ser rastreados. A
validao do mdulo observador necessria para garantir que as e-Coins no
foram utilizadas duas vezes (double-spending). Caso a validao no seja

76
garantida, ento o processo de auditoria iniciado. O mdulo observador
detm as informaes das transaes no atributo TRANSACTION_TABLE, a
estrutura dessa tabela descrita a seguir:

Tabela 8 - Tabela de Transaes


Atributo Tipo Descrio
ID_TRANSACTION Inteiro Valor sequencial que
identifica a transao.
ID_USER_REQUEST Inteiro Identifica o usurio que
requisitou a transao.
SIGN_TRANSACTION Alfanumrico Descreve a assinatura
digital enviada pelo
requisitante da
transao.
E_COIN_REPRESENTATION STRUCT Estrutura que
representa as e-Coins
envolvidas na
transao.
TRANSACTION_DATE Data Data na qual ocorreu a
transao.

A estrutura dos dados do mdulo observador garante um conjunto de


logs que podem ser auditados pelo agente bancrio autorizado. Os campos
ID_USER_REQUEST e SIGN_TRANSACTION so utilizados pelo banco para
garantir que a transao ocorreu entre usurios legtimos do sistema. O campo
E_COIN_REPRESENTATION consiste em uma estrutura de dados que
armazena representaes das e-Coins envolvidas na transao e
responsvel por auxiliar o mdulo observador em garantir que uma dada e-
Coin fora ou no utilizada.

A seguir mostrado o fluxograma geral do sistema e-Cash:

77
Figura 4 - Fluxograma do sistema e-Cash

5.4 Estrutura da e-Wallet

A e-Wallet um sistema computacional que pretende garantir a


execuo atmica dos protocolos descritos. A carteira eletrnica proposta
constituda de um software para executar tais protocolos, um sistema de
armazenamento de dados que garante a estocagem das e-Coins, e de um
mdulo observador autenticado, gerado por um agente bancrio autorizado. A
e-Wallet deve ser capaz de ser executada em qualquer perifrico, seja um
celular, computador ou aparelho de televiso. Os processos descritos a seguir
descrevem as atividades de execuo e armazenamento realizadas pelos
protocolos dentro da e-Wallet.

Na execuo do protocolo de retirada a e-Wallet possui uma interface de


conexo com agente bancrio autorizado, e nela so informados o usurio e
senha utilizados para acessa a conta bancria. Esse acesso deve ser
semelhante aos utilizados em sistema de internet banking, e da mesma forma
garantir o sigilo da transao, que pode ser garantido com protocolos como o

78
https. Nessa interface o usurio obtm o extrato de sua conta bancria, assim
como em qualquer sistema bancrio. O processo de retirada executado por
solicitao do usurio de um menu no sistema, e, executado o protocolo de
retirada, as e-Coins so inseridas no banco de dados do dispositivo.

Quando um cliente necessita efetuar troca de e-Coins com outro usurio,


ento uma conexo deve ser aberta com o usurio destino, tal conexo
podendo ser efetuada via internet, bluetooth ou infravermelho. Essa conexo
feita de acordo com o protocolo de troca onde h a permuta de identificao
entre os procedimentos, s ento o protocolo de troca executado. O mdulo
observador acionado neste ponto, e acessado pela e-Wallet para criar
registros de logs como descrito no protocolo, dessa forma uma e-Wallet tem
uma conexo interna autenticada com o mdulo observador, o cliente no
acessa o mdulo diretamente. O mdulo deve ser portanto um software caixa
preta dentro da e-Wallet acessvel apenas para dois mtodos:

Checagem de Unicidade de e-Coins;


Validao de Transaes executado apenas por agentes bancrios
autorizados.

Figura 5 - Representao Grfica da e-Wallet

5.5 Trabalhos Relacionados

Muitos esforos esto sendo empregados na construo de um sistema


e-Cash que garanta segurana, sigilo e no rastreabilidade. Alguns desses

79
sistemas sero descritos para que um comparativo seja realizado na
concluso deste trabalho.

Hohenberger (2006) props um sistema e-Cash usando Grupos


Bilineares que consiste em um sistema que tambm utiliza o problema
matemtico do logaritmo discreto sobre curvas elpticas sobre grupos
bilineares. Este sistema baseado em um esquema de assinaturas partindo
do pressuposto que um usurio pode eficientemente obter e submeter
mensagem assinadas.

Hohenberger (2006) define os protocolos de gerao de chaves,


retirada, pagamento, depsito, deteco de violao, identificao de violador,
verificao de violador, rota, verificao de posse.

Schoenmakers (1997) props uma soluo para numerrio eletrnico


usando um esquema de assinaturas digitais baseadas no esquema
criptogrfico RSA. Alm de definir todos os conceitos de e-Cash on-line e off-
line, Schoenmakers props ainda uma discusso sobre o uso de softwares de
validao ou hardwares a prova de fraude, assumindo por fim que uma das
vantagens do uso apenas de softwares para validao do processo, seria a
facilidade de distribuio do mesmo e assim alcanando um brao muito maior
da economia.

O sistema de Schoenmakers utiliza o RSA para autenticao de


mensagens, quando cada participante teria seu prprio par de chaves de
encriptao e decriptao que seriam usadas para garantir autenticidade em
cada transao monetria. O sistema proposto tem ainda caracterstica off-line
no que tange os protocolos definidos em Schoenmakers (1997).

Outra proposta para e-Cash partiu de Grabbe (1997) utilizando


assinaturas cegas com criptografia baseada no RSA. O esquema utiliza o
problema do logaritmo discreto abordado por Diffie-Hellman (1976). O
esquema usa o mtodo cut-and-choose para deteco de double-spending.
Tal mtodo consiste na criao de N pares (por parte de um cliente C) que so
associados digitalmente a uma e-Coin assinada que ser retirada. Estes pares

80
podem ento identificar o cliente a medida que um agente bancrio possa
identificar a necessidade de investigao.

Wang, Zhiquiang e Xiaofeng (2005) propuseram um sistema e-Cash no


qual os agentes participantes (clientes ou mercados on-line) no
necessariamente pertenam ao mesmo agente bancrio. O sistema dito
multi-bancos, ou seja, as unidades monetrias eletrnicas poderiam trafegar
no somente entre usurios de um mesmo agente bancrio, mas tambm
serem vlidas em sistemas bancrios diferentes. No sistema proposto uma
terceira parte confivel seria necessria, porm o trabalho prope uma
estrutura de hardware validadora utilizando assinaturas eletrnicas utilizando o
problema de emparelhamento de grupos bilineares.

O esquema proposto por Jena, Kumar e Majhi (2000) utiliza assinaturas


cegas baseadas no esquema de assinatura de Nyberg-Ruppel, o NRSS. Esse
esquema usa o problema do logaritmo discreto sob curvas elpticas. O
protocolo garante anonimidade aos participantes de uma transao e pode
facilmente se estendido para outros ramos como documentos e voto
eletrnico.

Por fim, Wang e Zhang (2002) propuseram um sistema e-Cash no


rastrevel baseado no problema do logaritmo discreto no mtodo de cut-and-
choose para combate do double-spending. O processo de Wang e Zhang
garante que os usurios permaneam annimos, a menos que tenham usado
uma mesma e-Coin mais de uma vez.

5.6 Consideraes Finais

Neste captulo foi apresentada uma proposta de sistema de numerrio


eletrnico baseado nos conceitos criptogrficos fundamentados nos captulos
anteriores. Foram descritos os atores do sistema, determinando suas funes
e permisses. Foram aplicados os esquemas de assinatura digital ECDSA e
de encriptao ECIES.

Definiu-se ainda a estrutura da e-Wallet proposta bem como as


estruturas dos dados que sero armazenadas e trafegas. Um fluxograma fora

81
apresentado para representar graficamente o trafego do dinheiro eletrnico
entre os diferentes atores do sistema.

So apresentados alguns trabalhos relacionados a sistemas e-Cash,


bem como ao uso de curvas elpticas na criptografia, principalmente voltadas
para sistemas de numerrio eletrnico.

82
6. Concluses

Neste captulo so apresentadas as concluses, contribuies,


limitaes de implementao deste trabalho. Em seguida so relacionados
trabalhos futuros concernentes aos tpicos abordados.

6.1 Concluses

Na era da informao, um sistema de dinheiro eletrnico de todo


modo uma evoluo natural. Livros, revistas, msica, filmes, DVDs, roupas,
eletrodomsticos, tudo est sendo comercializado em ambiente eletrnico.
Pagar por esses bens e servios foi por muito tempo um tabu para a
sociedade contempornea. O advento de sistemas observadores e
validadores com o eBay e Paypal proporcionaram ao consumidor uma
segurana que outrora no tinham.

Dia-aps-dia as operadoras de carto de crdito tm implementado


ferramentas para garantir compras on-line de bens e servios na internet.
Ento hoje comum adquirir um sapato, bolsa ou viagem atravs da internet e
pagar utilizando o carto de crdito diretamente no sistema do vendedor.
Multiplicam-se os stios eletrnicos que propiciam confiana e segurana para
o cliente.

A construo da estrutura comercial proposta neste trabalho ascende


em momento oportuno. O sistema de e-Cash exposto aqui embasado em
conceitos de privacidade pessoal e no rastreabilidade ao ponto que deixa
claro que indivduos que utilizem dessa tecnologia para fins ilcitos so
passveis de serem identificados, e detidos conforme a lei.

A idia proposta ento criar um novo sistema econmico que alie as


novidades tecnolgicas com a usabilidade adquirida ao longo da histria pelo
modelo econmico atual. O dinheiro continuaria sendo construdo por uma
instituio idnea, certificada e nica, assim como o Banco Central de cada
pas. A essa instituio seria cabvel o controle monetrio, das taxas de
manuteno e da unificao entre dinheiro eletrnico e real. Para o Banco
Central (ou agente bancrio central) o e-Cash seria mais uma forma de

83
distribuio de unidades monetrias, claro que com um custo de produo
infinitamente inferior do dinheiro real.

Aos agentes bancrios autorizados delegado o poder de distribuio


do dinheiro eletrnico. De fato os bancos atuais j o fazem com a utilizao
dos internet banking que criam uma representao eletrnica do dinheiro que
um dado cliente possui. Os protocolos de retirada e depsito assim nada mais
seriam do que os processos hoje realizados pelos bancos, ao transformar os
nmeros nas contas bancrias em notas fsicas e vice-versa. O ganho seria
ento a diminuio no tempo de processamento dos mtodos hoje utilizados
pelos bancos j que um cliente no necessariamente precisaria se dirigir a
uma agncia bancria para efetuar uma retirada ou depsito, j que atravs do
prprio internet banking um cliente poderia adquirir e-Coins para seus
dispositivo mvel.

Os mercados on-line j existem hoje. Quando um usurio faz uma


compra com carto de dbito utilizando as mquinas disponibilizadas pelas
empresas de carto esto nada mais nada menos do que transferindo fundos
de sua conta para a conta do mercador, a mudana seria nfima perto do
benefcio j que problemas de conexo com o servidor so comuns em
determinadas empresas de cartes o que levam usurios a, muitas vezes
desistirem da compra.

O maior beneficiado em um sistema de e-Cash de fato o cliente.


medida que o dinheiro que ele carrega em sua carteira no mais fsico, a sua
manipulao se torna muito mais fcil e segura. Interferncias externas
dificilmente tornariam o e-Cash invlido e a utilizao de perifricos como
celular ou tablet facilitam seu transporte. Em um mundo globalizado e
altamente tecnolgico, poder obter dinheiro em qualquer ponto a partir de uma
conexo direta com o banco e efetuar um pagamento ou uma permuta uma
comodidade imensa para o usurio.

Porm o principal benefcio do dinheiro eletrnico para o cliente a


segurana, exemplificada a seguir: Supondo que um cliente qualquer teve sua
carteira (normal) roubada ou perdida, todo o dinheiro e documentos do usurio
foram perdidos nesse processo. A recuperao desse dinheiro est fortemente

84
atrelada solidariedade ou idoneidade de terceiros. O e-Cash propicia ento
algo indito ao modelo econmico vigente: recuperao de dinheiro. Quando
um usurio perde ou danifica o dispositivo que continha seu e-Cash o mesmo
pode solicitar ao agente bancrio autorizado a revogao das transaes, ou
seja, baseada em artefatos de segurana (como boletins de ocorrncia) o
banco pode invalidar as e-Coins que estavam com o usurio e fazer o crdito
na sua conta bancria. Esse processo realizado no ambiente dos internet
banking quando ocorre algum distrbio como uma invaso.

Em suma, o trabalho proposto apresenta uma evoluo natural em


como as pessoas podem manter, trafegar e utilizar seu dinheiro de forma
eficiente, segura e prova de erros no que se refere recuperao dos
mesmos.

No que tange segurana e no rastreabilidade do dinheiro eletrnico


pode-se ento criar uma analogia natural do e-Cash a servios como telefonia.
Usurios utilizam o sistema telefnico, seja para conversao ou trocas de
dados. Todos esses dados no devidamente registrados e mantidos em sigilo
absoluto, que devido a alguma circunstncia externa podem ser revelados
pela prestadora do servio, so as chamadas quebras de sigilo telefnico, o
mesmo acontece com as transaes bancrias normais. Tais quebras so
solicitadas quando uma fraude ou crime detectado ou investigado. No
sistema e-Cash acontece a mesma coisa, dado que exista alguma transao
fraudulenta, o agente bancrio autorizado pode neste caso solicitar os dados
do mdulo observador e assim iniciar uma investigao e quem sabe at
rastrear as transaes efetuadas pelo usurio.

O desenvolvimento de e-Cash associado com a recente evoluo


tecnolgica e polticas de segurana ligadas a redes de dados, proteo de
integridade de arquivos podem se tornar uma importante e fundamental forma
de modelo econmico em um futuro muito breve. Tal desenvolvimento deve
influenciar no avano de dispositivos mais robustos de baixo preo para
contemplar toda a sociedade. Iniciativas j so reais em empresas como a
Google, que recentemente lanou o Google Wallet, responsvel por efetuar
pagamentos por bens e servios utilizando cartes de crditos previamente

85
cadastrados. Enveredar por este caminho pode ser uma aposta altamente
rentvel para software houses.

6.2 Contribuies

O presente trabalho um conjunto da maioria das boas prticas


elencadas em todos os trabalhos relacionados. Vale lembrar que sistemas de
criptografia para numerrio eletrnico vem sendo discutido desde o final da
dcada de 70 e muitos foram os esforos para criar um padro de
desenvolvimento e criptografia.

Muitos dos trabalhos relacionados aqui usam o problema do logaritmo


discreto como ponto fundamental da matemtica por traz do esquema o que
valida o uso dessa teoria no esquema proposto nesta dissertao.

O uso do problema do logaritmo discreto associado com a teoria de


curvas elpticas esta presente em inmeros trabalhos apresentados na
primeira dcada deste sculo. O esforo por criar uma rotina de criptografia
baseada em curvas elpticas parece claro quando o seu uso reflete em
agilidade no processamento, economia de recursos de hardware e diminuio
no uso de dispositivos de armazenamentos.

O tamanho reduzido das chaves de encriptao, decriptao e


assinatura um fator que vem levado muitos pesquisadores a focarem no
estudo de curvas elpticas, isso devido a necessidade diminuio do uso de
recursos por conta dos dispositivos cada vez mais usados pelos usurios,
como celulares e tablets que tem seu poder computacional e de
armazenamento reduzido significativamente quando comparados a
computadores mais potentes.

O trabalho apresenta as seguintes contribuies:

Consolidao de modelos criptogrficos baseados em Curvas


Elpticas como um modelo slido de segurana com diminuio no
cifrotexto final e no uso de chaves de criptografia menores do que os
modelos atuais;

86
Apresentao de um modelo econmico baseado em ambientes
eletrnicos cada vez mais presentes na sociedade contempornea;
Apresentao de protocolos de processos inerentes ao dinheiro
eletrnico que norteiam a implementao de sistemas reais.

6.3 Trabalhos Futuros

Os trabalhos futuros so listados a seguir:

O sistema operacional Android vem se mostrando como uma


excelente soluo como plataforma para desenvolvimento de
aplicativos para celulares. Implementar sistemas sobre esse
ambiente significa atingir 42% do mercado de smartphones dos EUA
(comScore 2011). Um dos trabalhos futuros ento criar uma e-
Wallet que satisfaa os requisitos expostos neste trabalho sob a
plataforma Android;
Criar padro de implementao para e-Wallet condiz com as
especificaes do software. Esse trabalho permite que qualquer
desenvolvedor possa criar carteiras eletrnicas vlidas e passveis de
auditoria e certificao;
A necessidade de gerenciamento de chaves pblicas e certificados
digitais pode se tornar um gargalo para o pleno funcionamento do
esquema proposto. Criptografia baseada em curvas elpticas sem
certificado pode ser uma soluo para implementar um novo
esquema criptogrfico auto gerencivel sem a necessidade de
implementar uma estrutura de chaves pblicas.
Um dos pontos frgeis no esquema proposto o uso de um mdulo
observador que detm muito poder e mantido dentro do perifrico
do usurio. A manuteno desse mdulo um ponto crtico, o uso de
tcnicas de proteo dos arquivos uma soluo que ocorre em
primeira instncia, mas no satisfaz a idealizao de ambiente onde
esse sistema deve atuar. Portanto a substituio desse mdulo por
algo mais seguro ou garantir a impenetrabilidade de seus dados de
fundamental importncia para confiabilidade do sistema.

87
88
Referncias

comScore. (15 de 01 de 2012). (comScore, Inc) Acesso em 15 de 01 de 2012,


disponvel em comScore:
http://www.comscore.com/Press_Events/Press_Releases/2011/9/Androi
d_Captures_number_2_Ranking_Among_Smartphone_Platforms_in_EU
5
ABDALLA, M., BELLARE, M., & ROGAWAY, P. (2000). DHAES: An Encryption
Scheme Based on the Diffie-Hellman Problem. IEEE P1363a.
Amazon. (a). Amazon Elastic Compute Cloud (Amazon EC2). Acesso em 25 de
fev. de 2010, disponvel em Amazon Web Services:
http://aws.amazon.com/ec2/
Amazon. (b). Amazon Simple Storage Service (Amazon S3). Acesso em 24 de
fev. de 2010, disponvel em Amazon Web Services:
http://aws.amazon.com/s3/
Apache ODE. (s.d.). Apache ODE. Acesso em 22 de jan. de 2011, disponvel
em http://ode.apache.org/
Armbrust, M., Fox, A., Griffith, R., Joseph, A. D., Katz, R. H., Konwinski, A., et
al. (2009). Above the Clouds: A Berkeley View of Cloud Computing.
Electrical Engineering and Computer Sciences University of California at
Berkeley.
Atkinson, B., Della-Libera, G., S., H., Hondo, M., Hallam-Baker, P., Kaler, C., et
al. (2002). Web Services Security (WS-Security). Acesso em 15 de maio
de 2010, disponvel em msdn: http://msdn.microsoft.com/en-
us/library/ms951257.aspx
Bakhtiari, S., Baraani, A., & Khayyambashi, M.-R. (2002). MobiCash: A New
Anonymous Mobile Payment System Implemented by Elliptic Curve
Cryptography. Los Angeles, California EUA.
BARRETO, P. (1999). Curvas Elpticas e Criptografa - Conceitos e Algoritmos.
Paulo Barretos Crypto Page. Disponvel em:
<http://www.larc.usp.br/~pbarreto/ECC-Alg.zip>.
BLAKE, I. F., SEROUSSI, G., & SMART, N. P. (1999). Elliptic Curve
Cryptography. New York: Cambridge.
BLAKE, I. F., SEROUSSI, G., & SMART, N. P. (2004). Advances in Elliptic
Curve Cryptography. New York: Cambridge.
BLOCK, B. (15 de 01 de 2012). comScore. (comScore, Inc) Acesso em 15 de
01 de 2012, disponvel em comScore:
http://www.comscore.com/Press_Events/Press_Releases/2011/9/Androi
d_Captures_number_2_Ranking_Among_Smartphone_Platforms_in_EU
5

89
BONEH, D. R. (2009). Finding Composite Order Ordinary Elliptic Curves Using
the Cocks-Pinch Method. Journal of Number Theory.
BONEH, D., & FRANKLIN, M. K. (2001). Identity-based encryption from the weil
pairing. CRYPTO 01: Proceedings of the 21st Annual International
Cryptology Conference on Advances in Cryptology. Londres.
BOS, J. W. (10 de 2002). LABORATORY FOR CRYPTOLOGIC ALGORITHMS.
Acesso em 12 de 01 de 2012, disponvel em LACAL:
http://lacal.epfl.ch/112bit_prime
BRANDS, S. (1994). Untraceable off-line cash in wallets with observers.
CRYPTO '93 Proceedings of the 13th Annual International Cryptology.
CASTELLANOS, A. S. (2004). Criptografia Usando Curvas Hiperelpticas.
Universidade Estadual de Campinas.
CHAUM, D. (1982). Blind Signatures for Untraceable Payments. Departamento
de Cincia da Computao, Universidade da Califrnia.
CHAUM, D. (1982). Blind Signatures for Untraceable Payments. Departamento
de Cincia da Computao, Universidade da Califrnia.
CHAUM, D. (1985). Security without indetification: Transaction systems to make
big brother obsolete. Communications of the ACM.
CHAUM, D. (1985). Security without indetification: Transaction systems to make
big brother obsolete. Communications of the ACM.
CHAUM, D. (1989). Privacy Protected Payments Unconditional Payer and/or
Payee Untraceability. Smart Card 2000: The Future of IC Cards Proc.
IFIP WG. Conf.
CHAUM, D. (1989). Privacy Protected Payments Unconditional Payer and/or
Payee Untraceability. Smart Card 2000: The Future of IC Cards Proc.
IFIP WG. Conf.
CHAUM, D. P. (1993). Wallet databases with observers. Preproceeding of
Crypto 92, 3.1-3.6.
CHAUM, D., & FIAT A. N, M. (1990). Untraceable Eletronic Cash. Proc.
CRYPTO.
CHAUM, D., & FIAT A. NAOR, M. (1990). Untraceable Eletronic Cash. Proc.
CRYPTO.
Chong, r., Carraro, G., & Wolter, R. (2006). MSDN Architecture Center. Acesso
em 23 de mar. de 2010, disponvel em MSDN Microsoft:
http://msdn.microsoft.com/en-us/architecture/aa479086.aspx
Coulouris, G., Dollimore, J., & Kindberg, T. (2007). Sistemas Distribudos:
Conceitos e Projetos (4 ed.). (J. Tortello, Trad.) Porto Alegre: Bookman.
COX, T. (27 de 04 de 2004). Certicom Announces Elliptic Curve Cryptography
Challenge Winner. Acesso em 09 de 01 de 2012, disponvel em

90
CERTICOM: http://www.certicom.com/index.php/2004-press-
releases/36-2004-press-releases/300-solution-required-team-of-
mathematicians-2600-computers-and-17-months-
Damasceno, J. C. (2010). SecMosc-Engine: Um Ambiente de Suporte
Execuo Segura de Composio de Sservios. Dissertao de
Mestrado, Universidade Federal de Pernambuco.
DAMASCENO, J. C., SOUZA, A. R., MEDEIROS, R. W., Silva, B. L., LINS, F.
A., ROSA, N. S., et al. (2009). Towards Generating Richer Code by
Binding Security Abstractions to BPMN Task Types. Revista de
Informtica Terica e Aplicada, 97-98.
Damasceno, J., Lins, F., Medeiros, R., Silva, B., Souza, A., Arago, D., et al. (4
de jul. de 2011). Modeling and Executing Business Processes with
Annotated Security Requirements in the Cloud (Submetido). IEEE
International Conference on Web Service.
DIFFIE, W; HELLMAN, M. (1976). New directions in cryptography. IEEE
Transactions on Information Theory.
DIFFIE, Whitfield; HELLMAN, Martin. (1976). New directions in cryptography.
IEEE Transactions on Information Theory.
EASTLAKE, D. (2005). Electronic Commerce Modeling Language (ECML). RFC
4112.
eClarus Software. (s.d.). Acesso em 12 de fev. de 2011, disponvel em
http://www.eclarus.com/
Eclipse. (2009). BPMN Modeler. Acesso em 28 de mar. de 2009, disponvel em
Eclipse: http://www.eclipse.org/bpmn/
Eclipse. (b). Eclipse Platform. Acesso em 04 de mar. de 2009, disponvel em
Eclipse: http://www.eclipse.org/platform/
Effinger, P., Siebenhaller, M., & Kaufmann, M. (2009). An Interactive Layout
Tool for BPMN. Commerce and Enterprise Computing, pp. 399-406.
Erl, T. (2005). Service-Oriented Architecture: Concepts, Technology, and
Design. Prentice Hall PTR.
FILHO, J. (s.d.). Blog do Paz. Fonte: Qual o melhor tablet?:
http://www.blogdopaz.com.br/tablets/qual-o-melhor-tablet-faca-a-sua-
escolha
Furtado, C., Pereira, V., Azevedo, L., Baio, F., & Santoro, F. (2009).
Arquitetura Orientada a Servio - Conceituao. Relatrio Tcnico,
Universidade Federal do Estado do Rio de Janeiro, Departamento de
Informtica Aplicada, Rio de Janeiro.
GOLDWASSER, S., MICALI, S., & RIVEST, R. (1988). A digital signature
scheme secure against adaptive chosen-message attacks. SIAM J.
Comp.

91
Gong, C., Liu, J., Zhang, Q., Chen, H., & Gong, Z. (2010). The Characteristics
of Cloud Computing. 39th International Conference on Parallel
Processing Workshops, pp. 275-279 .
Google. (2006). Press Center. Acesso em 12 de jan. de 2011, disponvel em
http://www.google.com/press/podium/ses2006.html
Google. (s.d.). Google App Engine. Acesso em 05 de mar. de 2010, disponvel
em Google: http://code.google.com/intl/en/appengine/
Grabbe, J. O. (10 de 10 de 1997). Cryptography and Number Theory for Digital
Cash. Acesso em 04 de 06 de 2012, disponvel em
http://groups.csail.mit.edu/mac/classes/6.805/articles/money/cryptnum.ht
m
Grosso, W. (2001). Java RMI (1st ed.). OReilly Media, Inc.
HANKERSON, D., MENEZES, A., & VANSTONE, S. (2003). Guide to Elliptic
Curve Cryptography. EUA: Springer.
HANKERSON, D., MENEZES, A., & VANSTONE, S. (2003). Guide to Elliptic
Curve Cryptography. EUA: Springer.
Hasso-Plattner-Institut. (2011). Home. Acesso em 12 de jan. de 2011,
disponvel em HPI: http://www.hpi.uni-potsdam.de/
Hohenberger, S. (Maio de 2006). Advances in Signatures, Encryption, and E-
Cash from Bilinear Groups.
Hungerford, T. W. (1974). Algebra. Springer.
IBM. (2003). Implementing WS-Security. Acesso em 6 de mar. de 2010,
disponvel em
http://www.ibm.com/developerworks/webservices/library/ws-security.html
Jena, D., Jena, S. K., & Majhi, B. (2000). A Novel Blind Signature Scheme
Based on Nyberg-Rueppel Signature Scheme and Applying in Off-Line
Digital Cash. Rourkela, India.
JOpera. (s.d.). JOpera. Acesso em 22 de abr. de 2010, disponvel em
http://www.jopera.org/
JOUX, A. (2002). The Weil and Tate Pairings as Building Blocks for Public Key
Cryptosystems.
KATZ, J., & LINDELL, Y. (2007). Introduction to Modern Cryptography. 1 ed.
EUA. Chapman & Hall/CRC.
KATZ, J., & LINDELL, Y. (2007). Introduction to Modern Cryptography. 1 ed.
EUA. Chapman & Hall/CRC.
KOBLITZ, N. (1994). A course in number theory and cryptography. 2 ed. EUA,
Springer-Verlag.

92
Kumar, S., Prajapati, R., Singh, M., & De, A. (2010). Security Enforcement
using PKI in Semantic Web . Computer Information Systems and
Industrial Management Applications, pp. 392-397.
Lavarack, T., & Coetzee, M. (2010). Considering web services security policy
compatibility. Information Security for South Africa (ISSA), pp. 1-8.
LOCHTER, M. M. (2010). RFC 5639: Elliptic Curve Cryptography (ECC)
Brainpool Standard Curves and Curve Generation.
Louridas, P. (dez. de 2006). SOAP and Web Services. Software, IEEE, 23, 62-
67.
Matonis, J. (2009). The new Cryptography behind anonymous Digital Cash. The
Monetary Future.
Medeiros, R., Silva, B., Souza, A., Arago, D., Damasceno, J., Lins, F., et al. (4
de jul de 2011). SSC4Cloud Tooling: An Integrated Environment for the
Development of Business Processes with Security Requirements in the
Cloud (Submetido). IEEE World Congress on Services.
MENEZES, A., OKAMOTO, T., & VANSTONE, S. (1993). Reducing elliptic
curve logarithms to logarithms in a Fnite Feld. IEEE Transactions on
Information Theory 39.
Menzel, M., Thomas, I., & Meinel, C. (2009). Security Requirements
Specification in Service-Oriented Business. International Conference on
Availability, Reliability and Security (pp. 41-48). Los Alamitos, CA: IEEE
Computer Society.
Menzel, M., Thomas, I., & Meinel, C. (2009). Security Requirements
Specification in Service-Oriented Business Process Management.
International Conference on Availability, Reliability and Security (ARES
2009), pp. 41-48.
Menzel, M., Warschofsky, R., & Meinel, C. (2010). A Pattern-driven Generation
of Security Policies for Service-oriented Architectures. IEEE International
Conference on Web Services, pp. 243 - 250.
Microsoft. (2009). .NET Framework Overview. Acesso em 18 de mar. de 2011,
disponvel em Microsoft: http://www.microsoft.com/net/overview.aspx
Mihindukulasooriya, N. (2008). Understanding WS Security Policy Language.
Acesso em 08 de jan. de 2011, disponvel em WSO2:
http://wso2.org/library/3132
Netbeans. (s.d.). NetBeans IDE. Acesso em 11 de jan. de 2011, disponvel em
http://netbeans.org/
Nordbotten, N. A. (2009). XML and Web Services Security Standards. IEEE
COMMUNICATIONS SURVEYS & TUTORIALS, 11, pp. 4-21.
Nurmi, D., Wolski, R., Grzegorczyk, C., Obertelli, G., Soman, S., Youseff, L., et
al. (2009). The Eucalyptus Open-Source Cloud-Computing System. 9th

93
IEEE International Symposium on Cluster Computing and the Grid, pp.
124-131.
OASIS. (2004). UDDI Spec TC. Acesso em 06 de jan. de 2011, disponvel em
http://www.oasis-open.org/committees/uddi-spec/doc/spec/v3/uddi-
v3.0.2-20041019.htm
OASIS. (2006). Web Services Security: SOAP Message Security 1.1 . Acesso
em 10 de abr. de 2010, disponvel em http://docs.oasis-
open.org/wss/v1.1/wss-v1.1-spec-os-SOAPMessageSecurity.pdf
OASIS. (2007). Web Services Business Process Execution Language Version
2.0. Acesso em 07 de jan. de 2011, disponvel em http://docs.oasis-
open.org/wsbpel/2.0/OS/wsbpel-v2.0-OS.html
OASIS. (2007b). WS-Trust Version 1.3. Acesso em 15 de out. de 2009,
disponvel em http://docs.oasis-open.org/ws-sx/ws-trust/200512/ws-trust-
1.3-os.html
OLIVEIRA, J. G. (2009). Curvas Elpticas sobre Corpos Finitos e Criptografia de
Chave Pblica. UFMS. Disponvel em:
<http://www.coloquiodematematica.ufms.br/conteudo/material/mc04.pdf>
.
OMG. (2009). Business Process Modeling Notation (BPMN). Acesso em 07 de
jan. de 2011, disponvel em http://www.omg.org/spec/BPMN/1.2/PDF
OMG. (2011). CORBA. Acesso em 18 de mar. de 2011, disponvel em OMG:
http://www.corba.org/
OMG. (2011). OMG IDL. Acesso em 18 de mar de 2011, disponvel em
http://www.omg.org/gettingstarted/omg_idl.htm
Onyszko, T. (2002). Secure Socket Layer. Acesso em 09 de jan. de 2011,
disponvel em WindowSecurity.com:
http://www.windowsecurity.com/articles/Secure_Socket_Layer.html
Open Cirrus. (2010). Home. Acesso em 15 de abr. de 2010, disponvel em
Open Cirrus(TM): https://opencirrus.org/
OpenID. (s.d.). Acesso em 25 de jan. de 2011, disponvel em OpenID:
http://openid.net/
OpenNebula. (2011). Acesso em 11 de abr. de 2011, disponvel em
OpenNebula: http://opennebula.org/
Oppliger, R. (2009). SSL and TLS: Theory and Practice (Information Security
and Privacy). Arteck House.
Oracle. (2011). Java EE. Acesso em 18 de mar. de 2011, disponvel em Oracle:
http://www.oracle.com/technetwork/java/javaee/overview/index.html
Oracle. (2011). Remote Method Invocation Home. Acesso em 21 de jan. de
2011, disponvel em Oracle Technology Network:

94
http://www.oracle.com/technetwork/java/javase/tech/index-jsp-
136424.html
Oracle. (s.d.). Oracle SOA Suite. Acesso em 05 de abr. de 2010, disponvel em
Oracle:
http://www.oracle.com/technetwork/middleware/soasuite/overview/index.
html
ORMAN, H. H. (2004). RFC 3766: Determining Strengths For Public Keys Used
For Exchanging Symmetric Keys.
Ort, E. (2005). Service-Oriented Architecture and Web Services: Concepts,
Technologies, and Tools. Acesso em 4 de jan. de 2011, disponvel em
http://www.oracle.com/technetwork/java/features-2005-135172.html
Oryx. (2010). Acesso em 21 de fev de 2011, disponvel em Oryx Engine:
http://bpt.hpi.uni-potsdam.de/Oryx/Engine
ORYX. (s.d.). The Oryx Project. Acesso em 12 de maio de 2010, disponvel em
ORYX: http://bpt.hpi.uni-potsdam.de/Oryx/
Ouyang, C., Dumas, M., ter Hofstede, A. H., & van der Aalst, W. M. (2006).
From BPMN Process Models to BPEL Web Services. Proceedings of the
IEEE International Conference on Web Services (pp. 285-292).
Washington, DC: IEEE Computer Society.
Palvankar, P. (2010). Oracle BPM. Acesso em 15 de mar de 2011, disponvel
em
http://blogs.oracle.com/bpm/2010/06/bpm_11gr1_now_available_on_am
a.html
PAPAZOGLOU, M. P., & HEUVEL, W.-J. (2007). Service oriented architectures:
approaches, technologies and research issues. VLDB Journal, Springer-
Verlag.
Peng, J., Zhang, X., Lei, Z., Zhang, B., Zhang, W., & Li, Q. (2009). Comparison
of Several Cloud Computing Platforms . Second International
Symposium on Information Science and Engineering, pp. 23-27.
PEREIRA, G. C. (2011). Parametrizao e Otimizao de Criptografia de
Curvas Elpticas Amigveis a Emparelhamentos. Escola Politcnica de
So Paulo.
PIETILINEN, H. (2000). Elliptic curve cryptography on smarts cards. FIT.
PIETILINEN, H. (2000). Elliptic curve cryptography on smarts cards. FIT.
Postel, J. (1981). Internet Protocol. Fonte: RFC:791:
http://www.ietf.org/rfc/rfc791.txt
RODRGUEZ, A., FERNNDEZ-MEDINA, E., & PIATTINI, M. (abril de 2007). A
BPMN Extension for the modeling of Security Requirements in Business
Processes. IEICE - Trans. Inf. Syst., E90D(4), 745 - 752.

95
Rosa, N. S. (2001). NFi: An Architecture-based Approach for Treating Non-
Functional Properties. PhD thesis, Federal University of Pernambuco.
SATOH, T., & ARAKI, K. (1998). Fermat quotients and the polynomial time
discrete log algorithm for anomalous elliptic curves. Universidade Sancti
Pauli.
Schoenmakers, B. (1997). Basic Security of the ecash Payment System.
Applied Cryptography, Course on Computer Security and Industrial
Cryptography.
SEMAEV, I. A. (1998). Evaluation of discrete logarithms on some Elliptic
Curves.
SHAMIR, A. (1984). Identity-based cryptosystems and signature schemes.
Proceedings of CRYPTO 84 on Advances in cryptology. Nova Iroque,
EUA: Springer-Verlag.
Silva, B. L., SOUZA, A. R., MEDEIROS, R. W., DAMASCENO, J. C., LINS, F.
A., ROSA, N. S., et al. (2009). An Approach for Reducing the Gap
between BPMN Models and Implementation Artifacts. Revista de
Informtica Terica e Aplicada, 83-86.
SIMON, D. R. (1998). Untraceable Electronic Cash. European Application
Publication.
Singh, A. (2004). An Introduction to Virtualization. Acesso em 12 de jan. de
2011, disponvel em Kernelthread:
http://www.kernelthread.com/publications/virtualization/
SMART, N. P. (1999). Elliptic Curves over small fields of odd characteristic J.
141-151.
SOUZA, A. R., SILVA, B. L., LINS, F. A., DAMASCENO, J. C., ROSA, N. S.,
MACIEL, P. R., et al. (2009). Incorporating Security Requirements into
Service Composition: From Modelling to Execution. ICSOC/ServiceWave
2009: The 7th International Joint Conference on Service Oriented
Computing, 5900, pp. 373-388.
SOUZA, A. R., SILVA, B. L., LINS, F. A., DAMASCENO, J. C., ROSA, N. S.,
MACIEL, P. R., et al. (2009). Sec-MoSC Tooling - Incorporating Security
Requirements into Service Composition. ICSOC/ServiceWave 2009: The
7th International Joint Conference on Service Oriented Computing, 5900,
pp. 649-650.
springsource. (s.d.). Acesso em 09 de jun. de 2010, disponvel em
Springsource Community: http://www.springsource.org/
Stephenson, B., Li, J., Wu, E., Damasceno, J., Lins, F., Medeiros, R., et al. (01
de jun. de 2011). Deployment Experience Using Open Cirrus for a Cloud-
based Business Process Modeling and Execution Environment
(Submetido). Open Cirrus Summit 2011.

96
Stollberg, M., Lausen, H., Polleres, A., Lara, R., Keller, U., Zaremba, M., et al.
(2004). D3.2 WSMO Use Case Modeling and Testing. Acesso em 20 de
fev. de 2009, disponvel em Web Service Modeling Ontology:
http://www.wsmo.org/2004/d3/d3.2/20041004/
Taurion, C. (2009). Cloud Computing - Computao em Nuvem: Transformando
o mundo da Tecnologia da Informao. Brasport.
TSIOUNIS, Y. S. (1997). Efficient Electronic Cash: New Notions and
Techniques. Northeastern University. Boston, Massachusetts.
TYGAR, J. D. (1996). Atomicity in Electronic Commerce. ACM Symposium of
Principles of Distributed Computing.
USTINOV, A. V. (2008). The mean number of steps in the Euclidean Algorithm
with Least Absolute Value Remainders. Disponvel em:
<http://www.iam.khv.ru/articles/Ustinov/nth22_enSATOHg.pdf>.
Vinoski, S. (fev. de 1997). Corba: Integrating diverse applications within
distributed heterogeneous environments. IEEE Communications
Magazine, 35, 4655.
W3C. (2001). Web Services Description Language (WSDL) . Acesso em 18 de
mar. de 2011, disponvel em W3C: http://www.w3.org/TR/wsdl
W3C. (2004). Web Services Architecture. Acesso em 6 de jan. de 2011,
disponvel em http://www.w3.org/TR/ws-arch/
W3C. (2007). SOAP. Acesso em 18 de mar. de 2011, disponvel em W3C:
http://www.w3.org/TR/soap12-part1/
W3C. (2007). SOAP Version 1.2 Part 1: Messaging Framework (Second
Edition). Acesso em 06 de jan. de 2011, disponvel em
http://www.w3.org/TR/soap12-part1/
W3C. (2008). Extensible Markup Language (XML). Acesso em 18 de mar. de
2011, disponvel em W3C: http://www.w3.org/XML/
Wang, H., & Zhang, Y. (2002). Untraceable Off-line Electronic Cash Flow in E-
Commerce. Gold Coast, Queensland, Australia.
Wang, L., Laszewsk, G. v., Younge, A., He, X., Kunze, M., Tao, J., et al. (2010).
Cloud Computing: a Perspective Study. New Generation Computing, 28,
137-146.
Wang, S., Chen, Z., & Wang, X. (2005). A New Certificateless Electronic Cash
Scheme with Multiple Banks Based on Group Signatures.
White, A. S. (2004). Introduction to BPMN. Acesso em 03 de maio de 2010,
disponvel em OMG:
http://www.bpmn.org/Documents/Introduction_to_BPMN.pdf
XU, S. Y. (1999). Money Conservation via Atomicity in Fair Off-Line E-Cash.
ISW 99. Springer-Verlag. Berlin Heidelberg.

97
Zeng, L., Benatallah, B., Ngu, A., Dumas, M., Kalagnanam, J., & Chang, H.
(maio de 2004). QoS-Aware Middleware for Web Services Composition.
IEEE Transactions on Software Engineering, 30, 311-327.
Zhang, Q., Cheng, L., & Boutaba, R. (2010). Cloud computing: state-of-the-art
and research challenges. J Internet Service Application, pp. 718.
Zhang, S., Zhang, S., Chen, X., & Huo, X. (2010). Cloud Computing Research
and Development Trend. Second International Conference on Future
Networks, pp. 93-97.

98

Potrebbero piacerti anche