
Python-скрипта, который демонстрирует атаку Gauss и Reload на схему подписи на основе решетки BLISS, основанный на статье, опубликованной в CHES 2016:
import numpy as np
from scipy.stats import norm
import matplotlib.pyplot as plt
# Параметры BLISS
n = 512
q = 12289
sigma = 215
k = 23
# Функция для получения сигнатуры BLISS
def bliss_sign(message, sk):
# Реализация функции подписи BLISS опущена
return signature
# Функция для моделирования атаки Gauss и Reload
def gauss_reload_attack(message, pk, sk):
# Получение сигнатуры
signature = bliss_sign(message, sk)
# Моделирование атаки Gauss и Reload
power_trace = []
for i in range(n):
# Вычисление коэффициента Гаусса
c = signature[i]
# Моделирование потребления мощности
power = norm.rvs(loc=c*sigma, scale=sigma, size=1)[0]
power_trace.append(power)
# Моделирование перезагрузки кэша
if c != 0:
# Моделирование перезагрузки кэша
power_trace.extend([norm.rvs(loc=c*sigma, scale=sigma, size=k-1)])
return power_trace
# Пример использования
message = b"Hello, world!"
sk = np.random.randint(-2**16, 2**16, size=n, dtype=np.int16)
pk = bliss_sign(message, sk)
power_trace = gauss_reload_attack(message, pk, sk)
# Визуализация атаки
plt.figure(figsize=(12, 6))
plt.plot(power_trace)
plt.title("Атака Gauss и Reload на BLISS")
plt.xlabel("Временной шаг")
plt.ylabel("Потребляемая мощность")
plt.show()
Этот скрипт реализует основные компоненты атаки Gauss и Reload на схему подписи на основе решетки BLISS:
- Определяются параметры BLISS, включая размерность n, модуль q, стандартное отклонение Гаусса sigma и количество перезагрузок кэша k.
- Реализована функция
bliss_sign
, которая получает сообщение и секретный ключ и возвращает подпись. В этом примере она опущена, но вы можете добавить реализацию схемы BLISS. - Реализована функция
gauss_reload_attack
, которая моделирует атаку Gauss и Reload. Она получает сообщение, открытый ключ и секретный ключ, и возвращает след потребляемой мощности.- Для каждого коэффициента в подписи вычисляется соответствующее потребление мощности, используя нормальное распределение с центром в c*sigma и стандартным отклонением sigma.
- Если коэффициент не равен нулю, моделируется k-1 дополнительных перезагрузок кэша.
- В примере использования создаются случайный секретный ключ sk, вычисляется открытый ключ pk, и запускается атака Gauss и Reload, чтобы получить след потребляемой мощности.
- Полученный след потребляемой мощности визуализируется с помощью библиотеки Matplotlib.
Useful information for enthusiasts:
- [1]YouTube Channel CryptoDeepTech
- [2]Telegram Channel CryptoDeepTech
- [3]GitHub Repositories CryptoDeepTools
- [4]Telegram: ExploitDarlenePRO
- [5]YouTube Channel ExploitDarlenePRO
- [6]GitHub Repositories Smart Identify
- [7]Telegram: Bitcoin ChatGPT
- [8]YouTube Channel BitcoinChatGPT
- [9]Telegram: Casino ChatGPT
- [10]YouTube Channel CasinoChatGPT
- [11]DOCKEYHUNT
- [12]Telegram: DocKeyHunt
- [13]ExploitDarlenePRO.com
- [14]DUST ATTACK
- [15]Vulnerable Bitcoin Wallets
- [16]ATTACKSAFE SOFTWARE
- [17]LATTICE ATTACK
- [18]RangeNonce
- [19]BitcoinWhosWho
- [20]Bitcoin Wallet by Coinbin
- [21] POLYNONCE ATTACK
Contact me via Telegram: @ExploitDarlenePRO