В этом руководстве мы создаём систему криптографических агентов на базе искусственного интеллекта, которая сочетает в себе надёжность классического шифрования с адаптивным интеллектом. Мы разрабатываем агентов, способных выполнять гибридное шифрование с использованием RSA и AES, генерировать цифровые подписи, обнаруживать аномалии в шаблонах сообщений и интеллектуально рекомендовать ротацию ключей.
Импортируем необходимые библиотеки
Мы начинаем с импорта всех необходимых библиотек для криптографии, анализа на основе ИИ и обработки данных. Также определяем класс `SecurityEvent` для записи и анализа всех важных событий в криптографической системе.
«`python
import hashlib, hmac, json, time, secrets, numpy as np
from dataclasses import dataclass
from typing import Dict, List
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import hashes, serialization
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
@dataclass
class SecurityEvent:
timestamp: float
event_type: str
risk_score: float
details: Dict
«`
Определяем класс `CryptoAgent`
«`python
class CryptoAgent:
def init(self, agent_id: str):
self.agentid = agentid
self.privatekey = rsa.generateprivatekey(publicexponent=65537, keysize=2048, backend=defaultbackend())
self.publickey = self.privatekey.public_key()
self.session_keys = {}
self.security_events = []
self.encryption_count = 0
self.keyrotationthreshold = 100
def getpublickey_bytes(self) -> bytes:
return self.publickey.publicbytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
def establishsession(self, partnerid: str, partnerpublickey_bytes: bytes) -> bytes:
sessionkey = secrets.tokenbytes(32)
self.sessionkeys[partnerid] = session_key
partnerpublickey = serialization.loadpempublickey(partnerpublickeybytes, backend=default_backend())
encryptedsessionkey = partnerpublickey.encrypt(
session_key,
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
)
self.logsecurityevent(«SESSIONESTABLISHED», 0.1, {«partner»: partnerid})
return encryptedsessionkey
def receivesessionkey(self, partnerid: str, encryptedsession_key: bytes):
sessionkey = self.privatekey.decrypt(
encryptedsessionkey,
padding.OAEP(mgf=padding.MGF1(algorithm=hashes.SHA256()), algorithm=hashes.SHA256(), label=None)
)
self.sessionkeys[partnerid] = session_key
«`
Шифрование и расшифровка сообщений
«`python
def encryptmessage(self, partnerid: str, plaintext: str) -> Dict:
if partnerid not in self.sessionkeys:
raise ValueError(f»No session established with {partner_id}»)
self.encryption_count += 1
if self.encryptioncount >= self.keyrotation_threshold:
self.logsecurityevent(«KEYROTATIONNEEDED», 0.3, {«count»: self.encryption_count})
iv = secrets.token_bytes(12)
cipher = Cipher(algorithms.AES(self.sessionkeys[partnerid]), modes.GCM(iv), backend=default_backend())
encryptor = cipher.encryptor()
ciphertext = encryptor.update(plaintext.encode()) + encryptor.finalize()
message_data = iv + ciphertext + encryptor.tag
signature = self.signdata(messagedata)
riskscore = self.analyzeencryption_pattern(len(plaintext))
return {
«sender»: self.agent_id,
«recipient»: partner_id,
«iv»: iv.hex(),
«ciphertext»: ciphertext.hex(),
«tag»: encryptor.tag.hex(),
«signature»: signature.hex(),
«timestamp»: time.time(),
«riskscore»: riskscore
}
def decryptmessage(self, encryptedmsg: Dict) -> str:
senderid = encryptedmsg[«sender»]
if senderid not in self.sessionkeys:
raise ValueError(f»No session established with {sender_id}»)
iv = bytes.fromhex(encrypted_msg[«iv»])
ciphertext = bytes.fromhex(encrypted_msg[«ciphertext»])
tag = bytes.fromhex(encrypted_msg[«tag»])
cipher = Cipher(algorithms.AES(self.sessionkeys[senderid]), modes.GCM(iv, tag), backend=default_backend())
decryptor = cipher.decryptor()
plaintext = decryptor.update(ciphertext) + decryptor.finalize()
if encryptedmsg.get(«riskscore», 0) > 0.7:
self.logsecurityevent(«HIGHRISKMESSAGE», 0.8, {«sender»: sender_id})
return plaintext.decode()
«`
Демонстрация системы
«`python
def democryptoagent_system():
print(«Advanced Cryptographic Agent System Demo\n»)
print(«=» * 60)
alice = CryptoAgent(«Alice»)
bob = CryptoAgent(«Bob»)
print(«\n1. Agents Created»)
print(f» Alice ID: {alice.agent_id}»)
print(f» Bob ID: {bob.agent_id}»)
print(«\n2. Establishing Secure Session (Hybrid Encryption)»)
alicepublickey = alice.getpublickey_bytes()
bobpublickey = bob.getpublickey_bytes()
encryptedsessionkey = alice.establishsession(«Bob», bobpublic_key)
bob.receivesessionkey(«Alice», encryptedsessionkey)
print(f» ✓ Session established with {len(encryptedsessionkey)} byte encrypted key»)
print(«\n3. Encrypting and Transmitting Messages»)
messages = [
«Hello Bob! This is a secure message.»,
«The launch codes are: Alpha-7-Charlie-9»,
«Meeting at 3 PM tomorrow.»,
«This is a very long message » * 100
]
for i, msg in enumerate(messages, 1):
encrypted = alice.encrypt_message(«Bob», msg)
print(f»\n Message {i}:»)
print(f» — Plaintext length: {len(msg)} chars»)
print(f» — Ciphertext: {encrypted[‘ciphertext’][:60]}…»)
print(f» — Risk Score: {encrypted[‘risk_score’]:.3f}»)
print(f» — Signature: {encrypted[‘signature’][:40]}…»)
decrypted = bob.decrypt_message(encrypted)
print(f» — Decrypted: {decrypted[:60]}{‘…’ if len(decrypted) > 60 else »}»)
print(f» — Verification: {‘✓ SUCCESS’ if decrypted == msg else ‘✗ FAILED’}»)
print(«\n4. AI-Powered Security Analysis»)
print(«\n Alice’s Security Report:»)
alicereport = alice.generatesecurity_report()
for k, v in alice_report.items(): print(f» — {k}: {v}»)
print(«\n Bob’s Security Report:»)
bobreport = bob.generatesecurity_report()
for k, v in bob_report.items(): print(f» — {k}: {v}»)
print(«\n» + «=» * 60)
print(«Demo Complete! Key Features Demonstrated:»)
print(«✓ Hybrid encryption (RSA + AES-GCM)»)
print(«✓ Digital signatures for authentication»)
print(«✓ AI-powered anomaly detection»)
print(«✓ Intelligent key rotation recommendations»)
print(«✓ Real-time security monitoring»)
if name == «main«:
democryptoagent_system()
«`
В этом руководстве мы продемонстрировали, как искусственный интеллект может усилить традиционную криптографию, добавив адаптивность и контекстуальную осведомлённость. Мы не только шифруем и аутентифицируем сообщения, но и обучаем наших агентов на основе поведения в коммуникации и динамически корректируем меры безопасности.
1. Какие алгоритмы шифрования используются в системе криптографических агентов, созданной на базе искусственного интеллекта, и как они взаимодействуют между собой?
В системе используется гибридное шифрование, сочетающее RSA и AES. RSA применяется для обмена сессионными ключами, а AES — для шифрования сообщений.
2. Какие классы и функции определены для работы с криптографическими агентами, и какие задачи они выполняют?
Для работы с криптографическими агентами определён класс CryptoAgent с функциями для установления сессии, шифрования и расшифровки сообщений, а также для анализа шаблонов сообщений и рекомендации ротации ключей.
3. Какие меры безопасности предусмотрены в системе для обнаружения аномалий и повышения уровня защиты?
Система включает в себя анализ шаблонов сообщений для обнаружения аномалий, интеллектуальные рекомендации по ротации ключей и мониторинг безопасности в реальном времени.
4. Какие библиотеки и инструменты используются для разработки системы криптографических агентов?
Для разработки системы используются библиотеки для криптографии (cryptography), анализа на основе ИИ и обработки данных (numpy, json, time, secrets и другие).
5. Какие основные функции выполняет класс SecurityEvent в системе криптографических агентов?
Класс SecurityEvent предназначен для записи и анализа важных событий в криптографической системе, включая временные метки, типы событий, оценки рисков и детали событий.