Saturday, August 8, 2026

Decrypt SHA256 GROVER_ITERATIONS algorithm ( altitude voos aviões comerciais) hardware IBM

 import numpy as np

from qiskit import QuantumCircuit, Aer, execute

from qiskit.providers.aer.noise import NoiseModel, thermal_relaxation_error, depolarizing_error

import matplotlib.pyplot as plt


# --- Conversão temperatura -> ruído térmico ---

def temp_to_T1_T2(temp_celsius):

    # Inferência física simplificada:

    # Temperaturas mais baixas -> maior coerência

    base_T1 = 80e-6   # 80 microseg (hardware típico)

    base_T2 = 60e-6


    factor = max(0.2, min(2.0, (25 - temp_celsius) / 25))

    return base_T1 * factor, base_T2 * factor


# --- Ruído eletromagnético de aviões ---

def avionics_noise(level=0.02):

    # 2% depolarização típica de ambiente ruidoso

    return depolarizing_error(level, 1)


# --- Ruído de vibração (fase aleatória) ---

def vibration_phase_error(level=0.01):

    return depolarizing_error(level, 1)


# --- Construção do modelo de ruído ---

def build_noise_model(temp_celsius):

    T1, T2 = temp_to_T1_T2(temp_celsius)

    noise = NoiseModel()


    thermal = thermal_relaxation_error(T1, T2, 50e-9)  # 50 ns gate time

    em = avionics_noise(0.02)

    vib = vibration_phase_error(0.01)


    noise.add_all_qubit_quantum_error(thermal, ['x','h'])

    noise.add_all_qubit_quantum_error(em, ['cx'])

    noise.add_all_qubit_quantum_error(vib, ['h'])


    return noise


# --- Grover Oracle ---

def oracle(n, target):

    qc = QuantumCircuit(n)

    for i, bit in enumerate(target):

        if bit == '0':

            qc.x(i)

    qc.h(n-1)

    qc.mcx(list(range(n-1)), n-1)

    qc.h(n-1)

    for i, bit in enumerate(target):

        if bit == '0':

            qc.x(i)

    return qc


# --- Diffusion ---

def diffusion(n):

    qc = QuantumCircuit(n)

    qc.h(range(n))

    qc.x(range(n))

    qc.h(n-1)

    qc.mcx(list(range(n-1)), n-1)

    qc.h(n-1)

    qc.x(range(n))

    qc.h(range(n))

    return qc


# --- Grover completo ---

def grover(n, target, iterations):

    qc = QuantumCircuit(n, n)

    qc.h(range(n))

    for _ in range(iterations):

        qc.compose(oracle(n, target), inplace=True)

        qc.compose(diffusion(n), inplace=True)

    qc.measure(range(n), range(n))

    return qc


# --- Experimento ---

def run(temp):

    backend = Aer.get_backend('qasm_simulator')

    noise = build_noise_model(temp)

    qc = grover(3, "101", 2)

    job = execute(qc, backend, noise_model=noise, shots=2000)

    counts = job.result().get_counts()

    return counts.get("101", 0) / 2000


temps = np.linspace(-60, 30, 40)

results = [run(t) for t in temps]


plt.plot(temps, results)

plt.xlabel("Temperatura (°C)")

plt.ylabel("Probabilidade de sucesso")

plt.title("Grover sob ruído de altitude de avião comercial")

plt.grid(True)

plt.show()







from qiskit import QuantumCircuit, Aer, execute

from qiskit.providers.aer.noise import NoiseModel

from noise_models import combined_model   # modelo IBM realista


def grover_3qubits():

    qc = QuantumCircuit(3,3)

    qc.h([0,1,2])

    qc.x(0); qc.x(2)

    qc.h(2); qc.mcx([0,1],2); qc.h(2)

    qc.x(0); qc.x(2)

    qc.h([0,1,2]); qc.x([0,1,2])

    qc.h(2); qc.mcx([0,1],2); qc.h(2)

    qc.x([0,1,2]); qc.h([0,1,2])

    qc.measure([0,1,2],[0,1,2])

    return qc


backend = Aer.get_backend("qasm_simulator")


for scale in [0.5,1,2,3]:

    noise = combined_model(scale=scale)

    job = execute(grover_3qubits(), backend, noise_model=noise, shots=2000)

    print(scale, job.result().get_counts())


def grover_adapt(n, target, phi):

    qc = QuantumCircuit(n,n)

    qc.h(range(n))

    for _ in range(2):

        qc.compose(oracle_phase(n, target, phi), inplace=True)

        qc.compose(diffusion_phase(n, phi), inplace=True)

    qc.measure(range(n), range(n))

    return qc


import numpy as np

from qiskit import QuantumCircuit, Aer, execute

from qiskit.providers.aer.noise import NoiseModel, thermal_relaxation_error, depolarizing_error

from qiskit.providers.aer.noise.errors import amplitude_damping_error, phase_error

import matplotlib.pyplot as plt


# ============================================================

# 1. MODELOS DE RUÍDO

# ============================================================


# --- A) Modelo de altitude de avião comercial ---

def noise_altitude(temp_celsius):

    base_T1 = 80e-6

    base_T2 = 60e-6

    factor = max(0.2, min(2.0, (25 - temp_celsius) / 25))

    T1 = base_T1 * factor

    T2 = base_T2 * factor


    noise = NoiseModel()

    thermal = thermal_relaxation_error(T1, T2, 50e-9)

    em = depolarizing_error(0.02, 1)

    vib = depolarizing_error(0.01, 1)


    noise.add_all_qubit_quantum_error(thermal, ['x','h'])

    noise.add_all_qubit_quantum_error(em, ['cx'])

    noise.add_all_qubit_quantum_error(vib, ['h'])

    return noise


# --- B) Modelo IBM realista ---

def noise_ibm(scale=1.0):

    noise = NoiseModel()

    T1 = 100e-6 / scale

    T2 = 70e-6 / scale

    thermal = thermal_relaxation_error(T1, T2, 60e-9)

    dep = depolarizing_error(0.01 * scale, 1)

    noise.add_all_qubit_quantum_error(thermal, ['x','h'])

    noise.add_all_qubit_quantum_error(dep, ['cx'])

    return noise


# --- C) Modelo académico ---

def noise_academic():

    noise = NoiseModel()

    amp = amplitude_damping_error(0.05)

    phaseflip = phase_error(0.03)

    noise.add_all_qubit_quantum_error(amp, ['x','h'])

    noise.add_all_qubit_quantum_error(phaseflip, ['cx'])

    return noise


# ============================================================

# 2. ORÁCULO E DIFUSÃO

# ============================================================


def oracle(n, target):

    qc = QuantumCircuit(n)

    for i, bit in enumerate(target):

        if bit == '0':

            qc.x(i)

    qc.h(n-1)

    qc.mcx(list(range(n-1)), n-1)

    qc.h(n-1)

    for i, bit in enumerate(target):

        if bit == '0':

            qc.x(i)

    return qc


def diffusion(n):

    qc = QuantumCircuit(n)

    qc.h(range(n))

    qc.x(range(n))

    qc.h(n-1)

    qc.mcx(list(range(n-1)), n-1)

    qc.h(n-1)

    qc.x(range(n))

    qc.h(range(n))

    return qc


# ============================================================

# 3. GROVER PADRÃO E ADAPTATIVO

# ============================================================


def grover(n, target, iterations):

    qc = QuantumCircuit(n, n)

    qc.h(range(n))

    for _ in range(iterations):

        qc.compose(oracle(n, target), inplace=True)

        qc.compose(diffusion(n), inplace=True)

    qc.measure(range(n), range(n))

    return qc


def grover_adapt(n, target, iterations, phi):

    qc = QuantumCircuit(n, n)

    qc.h(range(n))

    for _ in range(iterations):

        qc.compose(oracle(n, target), inplace=True)

        qc.rz(phi, range(n))

        qc.compose(diffusion(n), inplace=True)

        qc.rz(phi, range(n))

    qc.measure(range(n), range(n))

    return qc


# ============================================================

# 4. EXECUÇÃO + ZNE (Zero‑Noise Extrapolation)

# ============================================================


def run_with_noise(qc, noise):

    backend = Aer.get_backend("qasm_simulator")

    job = execute(qc, backend, noise_model=noise, shots=2000)

    return job.result().get_counts()


def ZNE(qc, noise_fn):

    scales = [0.5, 1, 2, 3]

    results = []

    for s in scales:

        noise = noise_fn(s) if noise_fn == noise_ibm else noise_fn

        counts = run_with_noise(qc, noise)

        results.append(counts)

    return results


# ============================================================

# 5. SISTEMA DE SELEÇÃO AUTOMÁTICA

# ============================================================


def select_noise(model, temp=None):

    if model == "altitude":

        return noise_altitude(temp)

    elif model == "ibm":

        return noise_ibm()

    elif model == "academic":

        return noise_academic()

    else:

        raise ValueError("Modelo inválido.")


# ============================================================

# 6. EXPERIMENTO ÚNICO

# ============================================================


def experiment(model="altitude", temp=-50, adaptive=False, phi=np.pi/4):

    n = 3

    target = "101"

    iterations = 2


    qc = grover_adapt(n, target, iterations, phi) if adaptive else grover(n, target, iterations)

    noise = select_noise(model, temp)


    counts = run_with_noise(qc, noise)

    print("Modelo:", model)

    print("Adaptive:", adaptive)

    print("Resultado:", counts)


    return counts


# ============================================================

# 7. EXEMPLO DE EXECUÇÃO

# ============================================================


if __name__ == "__main__":

    experiment(model="altitude", temp=-60, adaptive=False)

    experiment(model="ibm", adaptive=True, phi=np.pi/3)

    experiment(model="academic", adaptive=False)












IBM











No comments:

Decrypt SHA256 GROVER_ITERATIONS algorithm ( altitude voos aviões comerciais) hardware IBM

 import numpy as np from qiskit import QuantumCircuit, Aer, execute from qiskit.providers.aer.noise import NoiseModel, thermal_relaxation_er...