Nossas tecnologias

Algoritmos criptográficos

Algoritmo criptográfico

Nós usamos um algoritmo simétrico de criptografia Tiger segura e garantida que é um desenvolvimento proprietário da empresa.

O comprimento de chave é 256 bits.

O algoritmo pertence a uma classe de cifras XOR de fluxo sincronizadas. A sincronização é realizada por meio de vetor de inicialização transmitido (ou armazenado) abertamente em conjunto com o texto cifrado. O comprimento do vetor de inicialização varia de 4 a 12 bytes e é determinado pelo contexto de uso do codificador.

O procedimento de inicialização é realizado para ativar o codificador. Uma chave secreta e um vetor de inicialização são os parâmetros de entrada deste procedimento. O resultado do procedimento de inicialização são os valores de todos os elementos no modo do codificador que determinam o funcionamento dele.

Integridade dos dados garantido

Os algoritmos de verificação da integridade de dados são necessários para protegê-los de distorção acidental ou deliberada. Estes tipos de dados são os dados armazenados na memória protegida de um codificador smartphone, computador ou os dados encriptados trocados por assinantes.

Autenticação de dados é feita por meio de um cálculo de uma função de via única. Os dados e a chave secreta são apresentados na entrada. O resultado do cálculo de uma função de via única, chamado de código de autenticação de dados (ou código de autenticação de mensagem) é armazenado ou transmitido junto com os dados. Se os dados são modificados o código de autenticação também é alterado. Com as propriedades da função de via única devidamente selecionadas é praticamente impossível adivinhar o código sem saber a chave secreta.

O algoritmo HMAC-SHA256 é usado nos sistemas Stealthphone e Stealthphone Tell como um algoritmo básico para calcular o código de autenticação de dados.

O código de autenticação de dados é calculado e verificado em todas as soluções para todos os tipos de dados a serem encriptados: voz, SMS, mensagens instantâneas, mensagens de e-mail, todos os tipos de arquivos e multimídia, durante a transmissão e armazenamento de dados na memória protegida do codificador, smartphone, computador ou cartão SD. Desse jeito a integridade de todos os dados encriptados é verificada

Os cálculos no grupo de pontos de uma curva elíptica para autenticar os assinantes e autorizar as chaves de sessão

Os algoritmos assimétricos de criptografia baseados nas curvas elípticas (ECC - Criptografia de curva elíptica) são usados nos protocolos de autorização de chaves de sessão compartilhadas para encriptação de voz nos sistemas Stealthphone e Stealthphone Tell, bem como nos protocolos de autenticação de assinantes no sistema Stealthphone Tell.

Segurança criptográfica dos sistemas de curvas elípticas é baseada no problema do logaritmo nos grupos de pontos da curva elíptica (ECDLP - Elliptic Curve Discrete Logarithm Problem). Atualmente os melhores e mais conhecidos algoritmos para resolver o ECDLP têm uma complexidade exponencial, enquanto os problemas de decomposição de números inteiros em fatores e logaritmos em campos finitos em que são baseados, os conhecidos algoritmos assimétricos alternativos de criptografia RSA e El-Gamal têm tempo sub-exponencial de execução. Isto significa que o nível desejado de segurança em sistemas de curvas elípticas pode ser atingido com um comprimento de chave significativamente mais curto do que no sistema RSA por exemplo. Para efeitos de comparação uma chave de 384 bits na ECC proporciona o mesmo nível de segurança como a chave de 7680 bits no RSA. A chave mais curta na ECC em comparação com as opçoes alternativas permite implementar soluções mais sofisticadas, pois no mesmo nível de segurança criptográfica a velocidade de computação pode ser significativamente aumentada e o volume de informação transmitida pode ser reduzido.

Agência de Segurança Nacional dos Estados Unidos aprovou o uso de algoritmos assimétricos de criptografia nas curvas elípticas com um comprimento de chave de 384 bits para lidar com os documentos altamente secretos.

Os sistemas Stealthphone e Stealthphone Tell também usam as curvas elípticas 384 bits de comprimento. Segurança criptográfica dos sistemas criptográficos baseados em ECC depende não só de comprimento mas também de uma série de parâmetros matemáticos do grupo de pontos da curva elíptica que implementa o cálculo.

Os parâmetros do grupo de pontos da curva elíptica, sendo que os cálculos do grupo são realizados nos sistemas Stealthphone e Stealthphone Tell, fornecem completamente as características criptográficas necessárias.

Algoritmos criptográficos de encriptação de voz VoGSM

Para proteger os canais de transmissão de voz GSM é usada a conversão segura de tempo-frequência do sinal de voz resistente à dupla converção pelo vocoder (codificador de voz).

Os elementos principais da conversão são:

  • A divisão do sinal de voz em segmentos elementares

  • A converção não linear dos segmentos elementares

  • Transposição dos segmentos da voz entre si

  • Processamento do sinal resultante para transmiti-lo via o codec de voz AMR e canal GSM

Os parâmetros de converções (número e comprimento de segmentos do sinal de voz) dependem da chave.

Parâmetros da conversão não linear também são definidos pela chave criptográfica.

O atraso algoritmico e sistemico total é menos de 2.5 segundos.

Algoritmos criptográficos de encriptação de voz para os programas da telefonia IP

Para garantir a proteção das informações de voz utilizando aplicativos de telefonia IP, incluindo o Skype e o Viber, é usada a converção segura de tempo-frequência do sinal de voz que transforma a voz transmitida em sinal parecido com a fala.

A converção inclui:

  • Banco de filtros N;

  • A linha dispersiva de atraso (filtro com uma característica aleatória de fase e freqüência)

  • Permutação de comprimento N

Os parâmetros de converções (o número de filtros, os parâmetros de linha de atraso) dependem da chave.

A transposição de bandas espectrais no banco de filtros é dada por uma chave de sessão na hora de estabelecer a conexão.

Para a converção dinámica a transposição de bandas ocorre 1 vez de 3 à 5 segundos.

Atraso algorítmico é em menos de 1 segundo. A banda do sinal de voz processado é de 300 à 3400 Hz. O comprimento mínimo de permutação N é 24.

Dependendo da largura de banda da conexão à Internet várias converções estão permitidas. O atraso extremo permitido é de 2 segundos. Caso a conexão à Internet esteja instável ou de baixa velocidade, pode ser usado o algoritmo que não exige sincronização. Isso permite estabelecer rapidamente uma conexão e obter uma cripto-conexão sustentavel.

Gerenciamento de chaves

Gerenciamento de chaves é um dos problemas mais difíceis da criptografia aplicada que surgem durante a construção e a operação dos sistemas criptográficos de segurança da informação. Deficiências nas diversas partes do sistema de gerenciamento de chaves – (geração, armazenamento, uso, distribuição, protocolos de troca e outros) de acordo com a nossa estimativa, são as principais causas de comprometimento de sistemas reais de segurança da informação. 

Por esse motivo nos sistemas Stealthphone e Stealthphone Tell o gerenciamento de chaves (desde a produção até a eliminação ou alteração delas) foi desenvolvido com uma atenção especial. 

Nós gostariamos de destacar alguns dos aspectos mais significativos.

Controle de qualidade de chaves

Durante a geração de chaves por meio de hardware (Stealthphone Hard, Stealthphone KeyHard) e por meio de software (Stealthphone Soft, Stealthphone Tell, Stealthphone Key) as qualidades das chaves são constantemente controladas em termos de seus parâmetros estatísticos e a ausência de qualquer regularidade.

Hardware geradores usam geradores de números aleatórios baseados em processos físicos, cujas características foram confirmadas por exames laboratoriais específicos.

Software geradores estão baseados no princípio de acumulação constante de entropia (seqüência de números verdadeiramente aleatórios) e a sua posterior utilização no procedimento de geração de chaves. Fonte da entropia pode ser uma variedade de eventos que ocorrem num smartphone, tablet ou computador. Por exemplo, um evento desses pode ser a digitação de um caracter. Se o sistema de geração de chaves considera o volume da entropia inicial insuficiente para gerar chaves, o sistema solicitará ao usuário realizar qualquer ação no dispositivo para providenciar a reposição de entropia. Os procedimentos de acúmulo de entropia usados pelos softwares geradores de chaves, foram cuidadosamente testados e a sua excelente performance foi confirmada.

Para todos os tipos de geração são realizados vários procedimentos diferentes de controle dinâmico das características estatísticas de chaves geradas.

Armazenamento de chaves

Todas as chaves, incluindo as chaves no hardware codificador Stealthphone Hard, são armazenadas de forma encriptada ou não são armazenadas de forma nenhuma, mas são geradas “na hora” de um password e alguns dados adicionais. Decriptações das chaves encriptadas são feitas somente quando elas são usadas para encriptação, desde que sendo decriptadas no momento da operação as chaves também estejam guardadas de forma protegida e disfarçada na memória do aparelho.

Classificação de chaves

Sistemas de chaves do Stealthphone e Stealthphone Tell apesar das diferenças fundamentais de construção baseiam-se nos princípios gerais da classificação de chaves, que claramente regulam as normas de uso das chaves:


  • Todas as chaves criptográficas são divididas em chaves de encriptação de dados e chaves de encriptação de chaves. Isto significa que cada chave criptográfica é usada exclusivamente para encriptar dados (incluindo voz) ou exclusivamente para encriptar chaves, em particular as chaves usadas para encriptar dados e voz

  • Todas as chaves são divididas em chaves de longo prazo e chaves descartáveis. Chaves de longo prazo são usadas repetidamente durante um certo período de tempo, chaves descartáveis são usadas por uma vez para encriptar um fragmento de dados ou voz. Chaves de longo prazo incluem todas as chaves de encriptação de chaves, bem como as chaves de encriptação de dados dentro de um smartphone ou computador são previstos os procedimentos de substituição programada e não programada das chaves de longo prazo em caso de perda ou comprometimento

  • Além disso, é possível organizar as chaves criptográficas pela seguinte hierarquia:

        • Na parte superior há uma chave de autenticação que não é armazenada e não é gerada depois do procedimento de autenticação do assinante pelo dispositivo baseado numa senha

        • Em seguida há uma chave-mestra encriptada com uma chave de autenticação. A chave-mestra é usada para encriptar:

            • todas as chaves de encriptação das chaves de encriptação de dados
            • todas as chaves de encriptação de dados armazenados no Stealthphone Hard, smartphone, tablet ou computador

        • O próximo nível inclui as chaves de encriptação das chaves de encriptação de dados encriptados com uma chave-mestra e projetados para encriptar as chaves descartáveis de encriptação de dados e chaves usados para gerar as chaves de sessão de encriptação de voz

        • Os níveis mais baixos incluem as chaves usadas para encriptar os dados, cada chave dessas é encriptada

  • Para encriptação de voz são usadas apenas chaves descartáveis de sessão, destruídas no final da conversa; o volume de dados de voz encriptados com uma chave de sessão é limitado

  • Only one-time keys are used to encrypt transmitted data; the volume of data, encrypted with the help of a one-time key, is limited

Características do sistema de chaves do Stealthphone

No sistema Stealthphone a comunicação segura só é possível dentro da mesma cripto-rede (rede Stealthphone). Os assinantes da cripto-rede podem trocar quatro tipos de dados encriptados:

  • Dados de voz (encriptação de voz)

  • Mensagens de SMS

  • Mensagens de E-mail

  • Mensagens de texto e arquivos (cripto-mensageiro)

Os dados de voz são encriptados usando uma chave de sessão gerada pela combinação de chaves resultante do método ECDH e uma chave secreta de conexão dupla para encriptar voz, compartilhada por dois assinantes.

Os três tipos restantes de dados são encriptados com chaves descartáveis, geradas de forma aleatória e igualmente provável no lado do remetente de dados. Para que o destinatário possa desencriptar os dados assim como também os próprios dados, uma chave descartável é encriptada usando o algoritmo simétrico de criptografia Tiger que é transmitida junto com os dados encriptados. Neste caso, as chaves descartáveis são encriptadas com uma chave secreta de conexão dupla compartilhada por dois assinantes, que corresponde ao tipo de dados encriptados.

Assim, cada par de assinantes de uma cripto-rede tem um conjunto compartilhado de 4 chaves diferentes de conexão dupla, cada uma chave corresponde a um tipo de encriptação de dados.

A chave de conexão dupla de encriptação de voz é usada no procedimento de geração de uma chave de sessão de encriptação de voz.

A chave de conexão dupla de SMS é usada para encriptar as chaves descartáveis, usadas para encriptar SMS.

A chave de conexão de e-mail e mensageiro é usada de maneira semelhante como a chave de conexão dupla de SMS para os seus tipos de dados.

Número total de chaves de conexão dupla de cada assinante para comunicação encriptada com todos os outros assinantes da rede é igual a 4 × (N - 1), onde N é número de assinantes da rede.

As chaves de conexão dupla de encriptação de voz para todos os assinantes da rede Stealthphone podem ser organizadas numa tabela quadrada (matriz) de tamanho N × N segundo a regra seguinte:

  • A diagonal da matriz permanece desocupada (contém elementos zerados)

  • Na interseção da coluna A e a coluna B está localizada uma chave secreta compartilhada para encriptar a voz dos assinantes com os cripto-números A e B

Da mesma forma, você pode criar uma matriz de chaves de conexão dupla para os outros tipos de dados. Todas as 4 matrizes são simétricas em relação à diagonal.

Alinhando as 4 matrizes nós temos uma matriz completa de chaves de conexão dupla da rede Stealthphone, que é simétrica em relação à diagonal (uma matriz completa de chaves) que contém todas as chaves de conexão dupla para todos os tipos de comunicação segura entre cada par de assinantes. Na intersecção da linha A e a coluna B desta matriz está localizado um conjunto completo de 4 chaves secretas de conexão dupla dos assinantes com cripto-números A e B.

A Linha A da matriz cria uma grande quantidade de chaves de conexão dupla para comunicação encriptada de um assinante com o cripto-número A com os assinantes restantes da cripto-rede. O número total de chaves por linha é igual a 4 x (N - 1).

A Matriz de chaves de conexão dupla da rede Stealthphone, bem como todas as outras chaves de assinantes são geradas por um administrador de rede usando o sistema Stealthphone Key. As chaves são gravadas para os dispositivos dos clientes pelo administrador usando o sistema Stealthphone Key, ou pelo próprio assinante num computador pessoal, usando o conjunto de chaves, preparado antecipadamente pelo administrador.

Para manter o nível máximo de segurança e para facilitar a administração do sistema de gerenciamento de chaves da rede Stealthphone, o sistema permite inicialmente gravar as chaves nos dispositivos de clientes uma só vez, sem a necessidade de regravá-las por causa da reestruturação da rede (em caso de exclusão/inclusão ou alteração de direitos de acesso de assinantes), e também por causa de comprometimento das chaves de outros assinantes e substituição planejada das chaves de todos os assinantes da cripto-rede. Assim, o carregamento inicial de chaves nos dispositivos de clientes pode ser suficiente para os vários anos de operação, sem a necessidade de regravar as chaves no dispositivo.