
Recentemente, um cidadão brasileiro pediu ao Supremo o
código-fonte do programa de computador que realiza a distribuição
aleatória dos processos aos ministros. Usou a Lei de Acesso à Informação
(LAI). Em resposta, o Supremo afirmou que a escolha do relator “é feita
através de um sistema informatizado desenvolvido pela equipe de
Tecnologia da Informação da Corte, o qual utiliza um algoritmo que
realiza o sorteio do relator de forma aleatória”. E negou acesso ao
algoritmo, tendo em vista a “ausência de previsão normativa para tal.”
A transparência de dados, dentro ou fora do Judiciário, é
pressuposto geral da administração pública. Mesmo sem previsão
normativa específica, pela LAI o Supremo está obrigado a franquear o
acesso ao código-fonte. A LAI prevê a possibilidade de colocar
informações sob sigilo, mas nunca por via da inércia do órgão público.
De qualquer forma, o sigilo é explicitamente proibido quando se trata de
“informação necessária à tutela judicial ou administrativa de direitos
fundamentais.”
É difícil imaginar elemento mais decisivo para a tutela
de direitos fundamentais do que o mecanismo de escolha do relator dos
processos na mais alta corte do país. No Supremo, escolher o relator é
quase definir o resultado. A vasta maioria das decisões do tribunal é tomada pelo próprio relator, sem a participação dos colegas. Muitas vezes, o relator controla o timing de suas decisões no processo de maneira decisiva para o resultado da causa. Ou então decide em nome do colegiado descumprindo o precedente deste.
Mas e do ponto de vista técnico? Haveria razão para o sigilo?
Computadores são previsíveis. Se você repete uma
pergunta, vai receber sempre a mesma resposta. É necessário um programa
diferenciado para que a máquina, ao receber a pergunta “Para quem será
distribuído esse processo?”, não responda sempre com o nome de um mesmo
ministro.
É possível orientar um computador para gerar resultados
“aleatórios”. Mas, mesmo nestes casos, a máquina está sempre sujeita às
regras da sua programação. Assim, programas tradicionais não permitem
respostas ou resultados verdadeiramente aleatórios, porque
o sistema estará seguindo sempre as mesmas regras. Estará executando
sempre o mesmo algoritmo com a mesma sequência de comandos.
Mesmo assim, é possível simular aleatoriedade na
distribuição de processos. O programa começa com um valor inicial,
chamado de “semente”, e segue um padrão a partir daí. Esse ponto de
partida pode ser suficientemente complexo para tornar o padrão difícil
de ser identificado. Ainda assim, como não é nada mais que um conjunto
de regras se repetindo, o algoritmo irá gerar uma distribuição de
processos que não é verdadeiramente aleatória. O resultado pode ser
imprevisível olhando de fora, mas será sempre previsível do ponto de
vista das instruções do programa. Conhecendo a semente, qualquer um
poderia prever para qual ministro seria distribuído o próximo processo
sobre o impeachment da presidente Dilma ou o próximo inquérito sobre
Eduardo Cunha.
Mas quando a semente usada é suficientemente complexa,
mesmo algoritmos pseudo-aleatórios são praticamente impossíveis de
quebrar. Se for desse tipo, o algoritmo de distribuição aleatória de
processos do Supremo estaria vulnerável apenas a entidades com poder
computacional semi-infinito, como o Google ou a NSA. Mesmo assim, seria
necessário descobrir a semente. Ou seja, uma renovação periódica dela
resolveria o problema. O algoritmo poderia ser divulgado sem risco.
Existem também formas de um computador dar respostas verdadeiramente aleatórias.
Nesses casos, nem todo o poder computacional do mundo permitiria prever
para qual ministro o próximo processo seria distribuído. Esses
algoritmos tornam a engenharia reversa impossível. Eles se baseiam em
dados imprevisíveis da realidade, como o ruído atmosférico ou a
temperatura ambiente. Há soluções online neste formato, como o site random.org. Neste caso, não importa qual o algoritmo usado, pois o resultado é aleatório independentemente do código-fonte.
Qual dos dois o Supremo usa? Se o método depende do
algoritmo é uma escolha muito perigosa, pois permite manipulação. A
divulgação do algoritmo nesse caso é o menor dos problemas. Se não se
baseia no algoritmo e sim em uma semente complexa ou em algo
verdadeiramente aleatório, então o sigilo do código-fonte não faz
diferença. De fato, muitos sistemas realmente seguros publicam voluntariamente seu
algoritmo para corroborar sua segurança. Os tokens usados pelos
clientes de bancos como o Itaú para gerar um número aleatório e garantir
a segurança do internet banking são baseados em um algoritmo público. O
Bitcoin, que já movimenta milhões no mundo inteiro, também tem seu
código fonte divulgado ao público.
O Supremo poderia fazer o mesmo como gesto de boa
vontade, visando assegurar aos brasileiros que a distribuição dos
processos é adequadamente aleatória. Ou poderia divulgar o algoritmo
apenas para cumprir a Lei de Acesso à Informação.
Por Ivar A. Hartmann
Professor da FGV Direito e coordenador do projeto Supremo em Números
Nenhum comentário:
Postar um comentário