$$\rightleftharpoonup{xx}$$
$$\longleftharp{xx}$$,
$$\longrightharp{xx}$$,
Toutes les expériences ont été menées exclusivement à partir de jeux de données de référence d’intrusion réseau accessibles publiquement (UNSW-NB15, CIC-IDS-2017 et Bot-IoT), qui contiennent des enregistrements de trafic réseau sans informations personnelles ou médicales identifiables. Les ensembles de données ont été utilisés conformément à leurs licences et conditions d’utilisation respectives. Parce qu’aucun participant humain, échantillon de patients ou données personnelles identifiables n’a été impliqué, l’approbation éthique institutionnelle ni le consentement éclairé n’étaient pas requis.
Aperçu du cadre proposé
Cette section présente le cadre proposé de détection et de prévention des intrusions à double couche pour sécuriser les environnements IoMT. Le cadre intègre un réseau BiLSTM étendu pour la détection d’intrusion spatio-temporelle avec une couche blockchain légère pour la journalisation inviolable et l’atténuation automatisée. Contrairement aux approches IDS conventionnelles qui se concentrent uniquement sur la précision de la détection, l’architecture proposée est conçue pour soutenir simultanément la détection en temps réel, la responsabilité médico-légale et la conformité réglementaire, qui sont des exigences essentielles dans les systèmes de santé. Le flux de travail global et l’architecture du cadre proposé de détection d’intrusion BiLSTM–Blockchain étendu pour les réseaux IoMT sont illustrés dans la Figure 1.

Figure 1. Architecture du cadre proposé de détection d’intrusion BiLSTM–Blockchain pour les réseaux de l’Internet des objets médicaux. Représentation schématique du cadre proposé montrant les flux de travail de formation et de déploiement. Dans le flux de travail d’entraînement, les dispositifs de l’Internet des objets médicaux (IoMT) génèrent un trafic réseau qui subit un prétraitement des données et une ingénierie de caractéristiques avant d’être analysé par le modèle BiLSTM (Extended Bidirectional Long Short-Term Memory) avec une attention temporelle. Les paramètres du modèle sont optimisés par le calcul de la fonction de perte et l’entraînement itératif. Dans le flux de déploiement, le modèle entraîné effectue la détection d’intrusion selon la fonction de décision définie dans l’équation 13. Les événements d’intrusion détectés sont transmis au module blockchain, où une journalisation immuable, l’isolement des nœuds et la génération d’alertes par les administrateurs sont effectués. BiLSTM, mémoire bidirectionnelle à court terme ; IoMT, Internet des objets médicaux. Veuillez cliquer ici pour voir une version agrandie de cette figurine.
Les dispositifs IoMT générent des flux de données hétérogènes composés de trafic réseau, de métadonnées d’appareils et de signaux liés au patient. Ces entrées brutes sont souvent bruyantes, redondantes et incohérentes, ce qui les rend inadaptées à l’entraînement direct du modèle. Par conséquent, un pipeline de prétraitement est appliqué pour garantir la qualité et la structure des données avant de les intégrer au modèle BiLSTM étendu. Le pseudocode détaillé du prétraitement est fourni dans l’Algorithme 1 (Fichier Supplémentaire 1), qui décrit le pipeline de prétraitement appliqué aux flux de données IoMT avant l’entraînement BiLSTM étendu (pseudocode dans le Fichier Supplémentaire 1 ; implémentation dans le Fichier Supplémentaire 2). L’architecture complète de BiLSTM étendu est résumée dans l’Algorithme 2 (Fichier supplémentaire 1).
Flux de reproduction de bout en bout
L’étude complète peut être reproduite à l’aide des étapes ci-dessous. Le logiciel et le matériel sont listés dans la configuration expérimentale, et le code supplémentaire couvre chaque étape.
Obtenez les jeux de données → téléchargez UNSW-NB15. Utilisez les fichiers UNSW_NB15_training-set.csv et UNSW_NB15_testing-set.csv. Téléchargez CICIDS2017. Utilisez les cinq fichiers journaux MachineLearningCSV (du lundi au vendredi). Télécharger Bot-IoT. Utilisez les fichiers de sous-ensemble à 5 % UNSW_2018_IoT_Botnet_Full5pc_1_to_4. Les études antérieures de détection d’intrusion s’appuyaient généralement sur des ensembles de données de référence tels que KDD Cup 99,14 ; cependant, cette étude utilise les ensembles de données plus récents de l’UNSW-NB15, CICIDS2017 et Bot-IoT pour mieux représenter le trafic réseau contemporain. Traitez chaque jeu de données séparément. L’ensemble de données UNSW-NB15 est disponible auprès de l’Université de Nouvelle-Galles du Sud à https://research.unsw.edu.au/projects/unsw-nb15-dataset (dernière modification : 8 février 2024). Le jeu de données CICIDS2017 est disponible auprès de l’Institut canadien de cybersécurité à https://www.unb.ca/cic/datasets/ids-2017.html (publié : juillet 2017). Le jeu de données Bot-IoT est disponible auprès de l’Université de Nouvelle-Galles du Sud à https://research.unsw.edu.au/projects/bot-iot-dataset (dernière modification : 5 février 2024). Tous les ensembles de données ont été consultés en mai 2025 pour cette étude.
Prétraiter les données → supprimer les enregistrements corrompus. Combler les valeurs manquantes en utilisant les moyens de l’ensemble d’entraînement. Appliquer le débruit EMA (α = 0,3). Normaliser les caractéristiques à [0,1] en utilisant les statistiques de l’ensemble d’entraînement. Champs catégoriels par encodage d’étiquette. Construisez des fenêtres coulissantes (T = 20, foulée = 1). Ces étapes de prétraitement permettent une détection robuste d’intrusion en réduisant le bruit et en améliorant la qualité des représentations du trafic réseau pour les IDS15,16 basés sur l’apprentissage automatique.
Certaines caractéristiques (AQU-IMF-RFE) → Classez les caractéristiques par information mutuelle. Affinez avec l’Aquila Optimizer. Appliquer la RFE Random Forest avec une validation croisée 10 fois. Gardez les dernières fonctionnalités. Cette stratégie hybride de sélection de caractéristiques suit le concept plus large de combinaison de techniques complémentaires de détection d’intrusion17 et est mise en œuvre à l’aide du cadre AQU-IMF-RFE développé dans notre travailprécédent 18.
Entraîner le modèle → Pour chaque ensemble de données, les données ont été aléatoirement partitionnées en ensembles d’entraînement (80 %) et de test (20 %) en utilisant une graine aléatoire fixe de 42. Vingt pour cent de la partition d’entraînement était en plus réservée comme ensemble de validation. Construis le BiLSTM étendu. Entraînez-vous en utilisant la perte binaire pondérée en entropie croisée et l’optimiseur Adam (taux d’apprentissage = 0,001, taille du lot = 64, maximum de 50 époques, avec arrêt précoce). Sauvez le modèle entraîné. L’utilisation de modèles d’apprentissage profond temporel convient parfaitement au trafic IoMThétérogène 19. Le flux de travail complet d’entraînement du modèle est résumé dans l’Algorithme 3 (Fichier supplémentaire 1). Les poids finaux des classes étaient calculés automatiquement à partir des distributions des classes de l’ensemble d’entraînement selon les équations 19 et 20. Les poids de classe résultants étaient les suivants : UNSW-NB15 :
,
; CICIDS2017 :
,
; et Bot-IoT (sous-ensemble de 5 %) :
,
. La grande valeur de wn pour l’ensemble de données Bot-IoT reflète la sous-représentation sévère des échantillons bénins dans la partition d’entraînement du sous-ensemble des 5 %.
Déployez la blockchain → lancez la chaîne de preuve d’autorité (POA). Déployez le smart contract et notez son adresse. Autorisez les comptes passerelle. Exécutez le client de manière à ce que chaque intrusion détectée soit enregistrée et déclenche l’isolation et les alertes. Le flux de travail complet de détection, de journalisation blockchain et d’atténuation est résumé dans l’Algorithme 4 (Fichier Supplémentaire 1). La couche blockchain a été implémentée en utilisant le client go-ethereum (Geth) version 1.13.15 pour exploiter le réseau PoA autorisé, le compilateur Solidity (solc) version 0.8.19 pour la compilation et le déploiement de smart contracts, et la bibliothèque web3.py version 6.15.1 pour la communication entre l’IDS et le réseau blockchain.
Évaluer → tester le modèle sur l’ensemble de test tendu. Calculez la précision, la précision, le rappel, le score F1 et le taux de faux positifs. Enregistrer la latence et le débit. Vérifiez l’intégrité du registre blockchain. Le flux de travail complet de l’évaluation est résumé dans l’Algorithme 5 (Fichier Supplémentaire 1). La latence de détection (Td) a été mesurée immédiatement avant l’appel d’inférence du modèle jusqu’au moment où les probabilités prédites ont été retournées. La latence d’atténuation de bout en bout (Td +T b) a été mesurée du même point de départ jusqu’à l’achèvement de la transaction de création de blocs blockchain correspondante. Le débit était calculé comme le nombre total de fenêtres de test prétraitées traitées par le pipeline complet de détection et de journalisation divisé par le temps d’horloge murale écoulé pour un seul passage complet de chaque ensemble de données. La charge de travail consistait en les partitions de test fenêtrées tout en conservant la distribution de classe bénigne à l’intrusion d’origine. Les fenêtres malveillantes entraînaient également la surcharge de la journalisation de la blockchain, tandis que les fenêtres inoffensives n’entraînaient que le coût de détection d’intrusion.
Générez des chiffres et des tableaux → tracez les courbes de précision et de pertes, la matrice de confusion et les graphiques d’évaluation comparative. Construis les tableaux comparatifs. Le flux complet de génération de figures et de tables est résumé dans l’Algorithme 6 (Fichier Supplémentaire 1). Le code source complet développé sur mesure utilisé pour générer toutes les figures et tableaux est fourni dans le Fichier Supplémentaire 2. En particulier, le script figures.py reproduit les chiffres du manuscrit directement à partir des résultats expérimentaux sauvegardés (par exemple, historique d’entraînement et fichiers de matrice de confusion), tandis que les scripts restants génèrent les données traitées et les métriques de performance utilisées pour construire les tableaux rapportés.
La figure 2 montre le flux de données au niveau de la mise en œuvre entre les modules IDS et blockchain. La BiLSTM étendue produit une décision par fenêtre (Équation 13) ; sur une classification malveillante, le client passerelle construit et signe une transaction et la soumet via web3/JSON-RPC au smart contract PoA, qui ajoute un bloc lié par hachage (Équation 14) au registre immuable et émet des événements (BlockCreated, NodeIsolated et AdminAlert) déclenchant l’isolement des nœuds et des alertes administrateurs.

Figure 2. Interaction au niveau de l’implémentation entre la détection d’intrusion et les modules blockchain. Diagramme de flux de travail illustrant la communication entre le système de détection d’intrusion et les composants blockchain. Le modèle BiLSTM étendu classe chaque fenêtre d’entrée et applique la règle de décision définie dans l’équation 13. Lorsqu’une intrusion est détectée, le client passerelle génère et signe une transaction qui est transmise via Web3.py/JSON-RPC au contrat intelligent Proof-of-Authority (PoA). Le contrat ajoute un bloc lié par hachage au registre immuable selon l’équation 14 et émet des événements BlockCreated, NodeIsolated et AdminAlert qui déclenchent des actions de confinement et de notification. IDS, Système de détection d’intrusion ; BiLSTM, mémoire bidirectionnelle à court terme ; Procuration, preuve d’autorité ; JSON-RPC, notation d’objet JavaScript – Appel de procédure distante. Veuillez cliquer ici pour voir une version agrandie de cette figurine.
Représentation des données
Considérons R comme le flux brut de trafic IoMT. Après prétraitement, chaque enregistrement
brut est mappé dans un vecteur de caractéristiques normalisé de dimension d (Équation 1) :
(1)
Ici, f (⋅) est la fonction de transformation des caractéristiques qui mappe les enregistrements bruts en un vecteur de caractéristiques normalisé de dimension d. Soit le réseau IoMT constitué d’un ensemble de nœuds (Équation 2) :
N = {n 1 , n2, ... , nk} (2)
Chaque nœud n j ∈ R produit un flux de données en série temporelle (Équation 3) :
(3)
Ici, xt est le vecteur de caractéristiques au temps t, avec d caractéristiques (par exemple, taille du paquet, type de protocole, adresse source/destination) couramment observées dans le trafic réseau de santé de l’Internet desobjets 19. L’ensemble d’étiquettes correspondant est (Équation 4) :
(4)
Ici, yt=0 représente le trafic normal et yt =1 désigne une intrusion.
Prétraitement des données
Le pipeline de prétraitement comprend les étapes suivantes, qui répondent aux défis courants de qualité des données et de sécurité liés au traficIoMT 20 :
Nettoyage des données et gestion des valeurs manquantes :
Un enregistrement était identifié comme corrompu et supprimé avant l’imputation s’il remplissait l’une des conditions explicites suivantes : (i) tous les champs de caractéristiques de l’enregistrement étaient manquants (c’est-à-dire que l’enregistrement entier était nul), ou (ii) l’enregistrement contenait une valeur non finie (infini positif ou négatif) dans un champ numérique après coercition de type. La seconde règle supprime les entrées invalides telles que celles produites par la division par zéro lors du calcul des caractéristiques de flux (par exemple, des valeurs infinies de débits résultant de flux de durée nulle). Après la suppression des enregistrements corrompus, les valeurs manquantes restantes étaient imputées par remplacement moyen calculé par fonctionnalité, par jeu de données, et uniquement depuis la partition d’entraînement ; Les moyens obtenus ont été appliqués aux ensembles d’entraînement, de validation et de test afin d’éviter la fuite d’information. L’imputation n’était pas conditionnelle à la classe, et les moyennes n’étaient pas regroupées entre les ensembles de données.
Débruit temporel :
Le débruit temporel a été réalisé à l’aide d’un filtre à moyenne mobile exponentielle (EMA) par caractéristique appliqué le long de l’axe temporel. La forme récursive (causale ) yt = α·xt + (1 − α)·yt−1 a été utilisée, avec un facteur de lissage α = 0,3, implémentée via la fonction ewm de pandas avec adjust=False. Chaque fonctionnalité était lissée indépendamment. En tant que filtre exponentiel (réponse impulsionnelle infinie), l’EMA n’a pas de fenêtre ou de taille de noyau fixe ; Le facteur de lissage α est le paramètre unique régissant le degré de lissage et la mémoire effective du filtre.
Normalisation Min–Max :
La normalisation min–max a été appliquée pour mettre chaque caractéristique à l’échelle [0,1] en utilisant la transformation x′=(x−min)/(max−min+ε), où ε = 1 × 10−8. Les statistiques minimales et maximales étaient calculées par caractéristique, par ensemble de données, et uniquement à partir de la partition d’entraînement ; Ces statistiques d’entraînement stockées étaient ensuite appliquées pour normaliser les ensembles d’entraînement, de validation et de test, empêchant ainsi la fuite d’informations cachées. Lors de l’inférence, les valeurs de caractéristiques situées en dehors de la zone d’entraînement étaient réduites à l’intervalle [0,1].
Encodage des caractéristiques catégorielles :
Les caractéristiques catégorielles ont été converties en forme numérique à l’aide du codage d’étiquette. Cela s’appliquait à toutes les variables catégorielles : dansUNSW-NB 15, les champs proto, service et état ; dans Bot-IoT, le proto-champ ; CICIDS2017 ne contient aucun champ catégoriel parmi les caractéristiques sélectionnées. L’encodage était implémenté avec LabelEncoder par variable.
Fenêtrage temporel pour l’apprentissage séquentiel :
Le flux de caractéristiques prétraité était segmenté en séquences de longueur fixe à l’aide d’une fenêtre glissante de longueur T = 20 pas de temps avec une foulée de s = 1. Chaque fenêtre générée était validée avant inclusion. Une fenêtre n’était acceptée que si elle contenait exactement T = 20 pas de temps consécutifs et que toutes les valeurs des caractéristiques étaient finies. Les flux plus courts que T = 20 enregistrements ne produisaient pas de fenêtres. Cette configuration (T = 20, s = 1, chevauchement à 95 %) a été appliquée de manière cohérente à toutes les expériences et ensembles de données. Le flux de travail complet du prétraitement est résumé dans l’Algorithme 1 (Fichier supplémentaire 1).
L’objectif du prétraitement est de permettre une correspondance prédictive des séquences d’entrée vers les labels d’intrusion (Équation 5).
(5)
paramétrée par θ, cela prédit si un événement est bénin ou malveillant.
Sélection des caractéristiques à l’aide de AQU-IMF-RFE
La sélection des caractéristiques a été réalisée à l’aide d’AQU-IMF-RFE, une méthode hybride qui intègre l’information mutuelle (MI), l’Aquila Optimizer (AO) et l’élimination des caractéristiques récursives (RFE), introduite dans notre travailprécédent 18. La méthode fonctionne en trois étapes. Lors de la première étape, l’information mutuelle entre chaque caractéristique et l’étiquette de classe est calculée pour obtenir un classement initial de pertinence. Lors de la deuxième étape, l’Aquila Optimizer effectue une recherche globale sur des sous-ensembles de caractéristiques candidats en utilisant ses quatre stratégies d’optimisation. À la troisième étape, le sous-ensemble raffiné est passé par l’élimination des caractéristiques récursives avec une validation croisée de 10 fois à l’aide d’un estimateur Random Forest (RF).
L’Aquila Optimizer était configuré avec une population de 100 personnes, un maximum de 10 itérations, un facteur d’exploitation de 0,1, un taux d’apprentissage de 0,1 et un facteur d’attraction de 0,005. Appliqué indépendamment à chaque jeu de données, AQU-IMF-RFE a conservé 14 fonctionnalités pour UNSW-NB15, 24 pour CICIDS2017 et 12 pour Bot-IoT. Le pseudocode complet est fourni dans le Fichier Supplémentaire 1, et les sous-ensembles de caractéristiques sélectionnés sont listés dans le Tableau 4.
| Tableau 4A. Caractéristiques sélectionnées conservées pour UNSW-NB15 |
| S. Non. | Caractéristiques | Type | Catégorie |
| 1 | dur | Numérique (flottant) | Base |
| 2 | sbytes | Numérique (entier) | Base |
| 3 | Taux | Numérique (flottant) | Base |
| 4 | dload | Numérique (flottant) | Base |
| 5 | sinpkt | Numérique (flottant) | Temps |
| 6 | Dinpkt | Numérique (flottant) | Temps |
| 7 | sjit | Numérique (flottant) | Temps |
| 8 | TCPrtt | Numérique (flottant) | Temps |
| 9 | synack | Numérique (flottant) | Temps |
| 10 | ackdat | Numérique (flottant) | Temps |
| 11 | smean | Numérique (entier) | Contenu |
| 12 | ct_srv_src | Numérique (entier) | Connexion |
| 13 | ct_dst_src_ltm | Numérique (entier) | Connexion |
| 14 | ct_srv_dst | Numérique (entier) | Connexion |
| Tableau 4B. Caractéristiques sélectionnées conservées pour CICIDS2017 |
| S. Non. | Caractéristiques | | |
| 1 | Destination Port | | |
| 2 | Durée de l’écoulement | | |
| 3 | Longueur totale des paquets en avant | | |
| 4 | Longueur totale des paquets inversés | | |
| 5 | Longueur maximale de paquet en transfert | | |
| 6 | Longueur maximale de paquet en arrière | | |
| 7 | Moyenne inverse de la longueur des paquets | | |
| 8 | Paquets de flux | | |
| 9 | Temps maximal d’inter-arrivée du débit | | |
| 10 | Temps total avant avant entre les arrivées | | |
| 11 | Longueur de la tête avant | | |
| 12 | Longueur de l’en-tête à l’envers | | |
| 13 | Paquets avant par seconde | | |
| 14 | Longueur maximale du paquet | | |
| 15 | Moyenne de la longueur des paquets | | |
| 16 | Écart-type de longueur de paquet | | |
| 17 | Variance de la longueur des paquets | | |
| 18 | Taille moyenne des paquets | | |
| 19 | Taille moyenne des segments à l’envers | | |
| 20 | Octets en avant du sous-flux | | |
| 21 | Octets rétro de sous-flux | | |
| 22 | Octets de fenêtre initiaux en avant | | |
| 23 | Octets de fenêtre initiale à l’envers | | |
| 24 | Longueur des paquets en avant | | |
| Tableau 4C. Fonctionnalités sélectionnées conservées pour Bot-IoT |
| S. Non. | Caractéristiques | Type | |
| 1 | seq | Numérique | |
| 2 | Moyenne | Numérique | |
| 3 | STDDEV | Numérique | |
| 4 | min | Numérique | |
| 5 | Max | Numérique | |
| 6 | srate | Numérique (flottant) | |
| 7 | drate | Numérique (flottant) | |
| 8 | N_IN_Conn_P_SrcIP | Numérique (entier) | |
| 9 | N_IN_Conn_P_DstIP | Numérique (entier) | |
| 10 | proto | Catégorique (encodé) | |
| 11 | state_number | Numérique (entier) | |
| 12 | Taux | Numérique (flottant) | |
Tableau 4 : Caractéristiques sélectionnées par la méthode de sélection de caractéristiques AQU-IMF-RFE. Ce tableau liste les sous-ensembles finaux de caractéristiques sélectionnés par le cadre de sélection de caractéristiques AQU-IMF-RFE pour les ensembles de données UNSW-NB15, CICIDS2017 et Bot-IoT. Les noms de caractéristiques, types de données et catégories fonctionnelles sont fournis lorsque cela est applicable.
Installation expérimentale
Toutes les expériences ont été menées sur un serveur Dell PowerEdge R740 équipé d’un processeur Intel Xeon Silver 4214 fonctionnant à une fréquence de base de 2,20 GHz, avec 12 cœurs physiques, 24 threads logiques, 16,5 Mo de cache et une vitesse Intel Ultra Path Interconnect (UPI) de 9,6 GT/s. Le serveur était configuré avec 128 Go de RAM, un SSD (SSD) de 512 Go, et fonctionnait sous Microsoft Windows 11. La pile logicielle comprenait Python 3.12.7, TensorFlow 2.16.1, scikit-learn 1.8.0, pandas 3.0.2 et NumPy 2.4.4. La couche blockchain a été implémentée sur la même station de travail en utilisant un réseau PoA Ethereum. La communication entre l’IDS et la blockchain se faisait via JSON-RPC en utilisant le client go-ethereum (Geth) version 1.13.15, le compilateur Solidity (solc) version 0.8.19 pour la compilation et le déploiement de smart contracts, ainsi que la version 6.15.1 de la bibliothèque Web3.py. Le temps d’entraînement rapporté, la latence d’inférence et le débit ont été mesurés sur cette configuration matérielle et logicielle.
Architecture et formation de modèles
Le modèle BiLSTM étendu constitue le composant central de détection du cadre, s’appuyant sur les approches précédentes de détection d’intrusion basées sur l’apprentissage développées pour les environnementsIoMT 21. Des études antérieures de détection d’intrusion ont souligné à la fois l’importance d’équilibrer la performance de détection avec la réduction des faussesalertes 15 et les défis uniques liés à l’application de méthodes d’apprentissage automatique au trafic réseauen évolution 16. Les architectures collaboratives de détection d’intrusion par réseau neuronal ont également démontré la valeur de l’apprentissage séquentiel profond des caractéristiques pour le trafic réseaucomplexe 22. Alors que les modèles BiLSTM standards capturent des dépendances temporelles bidirectionnelles, le trafic IoMT présente à la fois des motifs de rafales à court terme et des dépendances à longue portée causées par des attaques à plusieurs étages. Pour y remédier, le modèle proposé étend BiLSTM avec l’extraction de caractéristiques temporelles, un apprentissage temporel bidirectionnel amélioré, des connexions résiduelles et une priorisation temporelle basée sur l’attention. Les LSTM bidirectionnels (BiLSTM) surmontent cette limitation en combinant des états cachés avant et arrière, permettant une représentation temporelle plus riche des schémas de trafic IoMT, comme indiqué dans l’Algorithme 2 (Fichier Supplémentaire 1).
Soit la séquence d’entrée X(nj) = {x 1 , x2 , ... , xT }, où chaque xt ∈ Rd est un vecteur de caractéristiques prétraité.
Extraction des caractéristiques temporelles :
Une convolution légère unidimensionnelle est appliquée sur la dimension temporelle pour souligner les anomalies temporelles à courte portée (Équation 6) :
U = φ (Conv1D(X(n j)), U = {u1, u2, ..., uT } (6)
Ici, φ(⋅) est une fonction d’activation non linéaire et les caractéristiques convoluelles ut sont transmises à la BiLSTM.
La couche Conv1D extrait des motifs temporels à courte portée avant la modélisation bidirectionnelle des séquences. Les paramètres complets d’implémentation sont fournis dans le fichier supplémentaire 3B.
Apprentissage LSTM bidirectionnel empilé :
Les états cachés avant et arrière sont calculés comme (Équation 7) :
(7)
La représentation finale de la BiLSTM est la concaténation des états cachés passés (en avant) et futurs (en arrière) (Équation 8).
(8)
Deux couches BiLSTM empilées modélisent les dépendances temporelles bidirectionnelles. Des paramètres architecturaux détaillés sont fournis dans le fichier supplémentaire 3B. Les détails de l’initialisation des poids sont fournis dans le fichier supplémentaire 3B.
Connexion résiduelle et normalisation
Après projection linéaire à des dimensions correspondantes, les connexions résiduelles et la normalisation des couches sont appliquées (Équation 9) :

La projection résiduelle et la normalisation des couches alignent les représentations convolutionnelles et BiLSTM avant l’attention. Les paramètres d’implémentation détaillés sont fournis dans le fichier supplémentaire 3B.
Mécanisme d’attention
Bien que BiLSTM fournisse une modélisation temporelle solide, tous les pas de temps ne contribuent pas de manière égale à la prédiction. Pour souligner les horodatages critiques (par exemple, des pics anormales soudains), un mécanisme d’attention est introduit. Chaque état
caché se voit attribuer un score de pertinence αt pour améliorer la précision de la détection (Équation 10).

Ici, Wa est un paramètre entraînable et les poids d’attention satisfont
Le vecteur de contexte c agrège les états cachés en fonction de leur importance apprise (Équation 11) :

Le mécanisme de l’attention agrège les représentations temporelles dans un vecteur de contexte. Les paramètres d’implémentation détaillés sont fournis dans le fichier supplémentaire 3B.
Couche de sortie et classification
Le vecteur de contexte agrégé est fait passer par une couche entièrement connexe suivie d’une activation sigmoïde pour obtenir la prédiction finale (Équation 12) :

Ici, Wc et bc sont des paramètres entraînables, et σ(·) est la fonction d’activation sigmoïde qui associe la sortie à l’intervalle [0,1]. Un seuil est appliqué pour classer le trafic comme bénin (
) ou intrusif (
).
La régularisation du dropout et le seuil de classification fixe utilisé lors de l’inférence sont décrits dans le Fichier Supplémentaire 3B.
L’architecture BiLSTM étendue est identique sur les trois ensembles de données ; seule la dimension des caractéristiques d’entrée diffère, prenant respectivement les valeurs 14, 24 et 12 pour UNSW-NB15, CICIDS2017 et Bot-IoT. Comme la couche Conv1D associe toute entrée de dimension à une représentation fixe de 64 canaux, toutes les couches suivantes sont indépendantes du jeu de données, et seule la forme d’entrée et le nombre de paramètres Conv1D varient avec . L’architecture complète couche par couche est résumée dans le tableau 5, avec les comptes de paramètres exprimés en termes de d ; Les totaux obtenus sont de 184 641, 186 561 et 184 257 paramètres entraînables pour D = 14, D = 24 et D = 12, respectivement.
| S. Non. | Couche (type) | Forme de sortie | Paramètres adaptés à l’entraînement | Fonction d’activation |
| 1 | Entrée | (20, d) | 0 | — |
| 2 | Conv1D (64 filtres, taille du noyau = 3, même remplissage) | (20, 64) | 192d + 64 | ReLU |
| 3 | LSTM bidirectionnel couche 1 (64 unités par direction) | (20, 128) | 66,048 | tanh / sigmoïde |
| 4 | LSTM bidirectionnel couche 2 (64 unités par direction) | (20, 128) | 98,816 | tanh / sigmoïde |
| 5 | Projection résiduelle dense | (20, 128) | 8,320 | Linéaire |
| 6 | Ajout résiduel | (20, 128) | 0 | — |
| 7 | Normalisation des couches (axe = −1, ε = 1 × 10⁻³) | (20, 128) | 256 | — |
| 8 | Attention temporelle (Wa ∈ R¹²⁸×¹) | 128 | 128 | Softmax |
| 9 | Couche cachée dense | 64 | 8,256 | ReLU |
| 10 | Abandon (p = 0,3) | 64 | 0 | — |
| 11 | Couche de sortie dense | 1 | 65 | Sigmoïde |
Tableau 5 : Architecture couche par couche du modèle de mémoire bidirectionnelle longue et courte durée étendue. Ce tableau résume l’architecture du modèle proposé de mémoire bidirectionnelle longue et courte durée (BiLSTM), incluant les types de couches, les dimensions de sortie, le nombre de paramètres entraînables et les fonctions d’activation.
Le logiciel et l’environnement informatique utilisés pour toutes les expériences sont résumés dans le tableau 6.
| Composant | Version / Spécification |
| Système d’exploitation | Windows |
| Plateforme serveur | Dell PowerEdge |
| CPU | Processeur 64 cœurs |
| RAM | 128 Go |
| Stockage | SSD 512 Go |
| Python | 3.12.7 |
| NumPy | 2.4.4 |
| Pandas | 3.0.2 |
| scikit-learn | 1.8.0 |
| TensorFlow / Keras | 2.16.1 |
| Web3 (client blockchain) | 6.15.1 |
| eth-account | 0.1 |
| Compilateur Solidity (solc) | 0.8.19 |
| go-ethereum (Geth) | 1.13.15 |
Tableau 6 : Logiciels et environnement informatique utilisés pour la mise en œuvre et l’évaluation du cadre proposé. Ce tableau résume les spécifications matérielles, les composants logiciels, les outils blockchain et les numéros de version utilisés pour le prétraitement des données, la sélection des fonctionnalités, l’entraînement des modèles, le déploiement de blockchain et l’évaluation des performances.
Décision d’intrusion et réponse automatisée
La détection d’intrusion dans les environnements de santé n’est efficace que si elle est suivie d’une réponse rapide et d’une atténuation. La couche de détection d’intrusion convertit la probabilité prédite en décision. Formellement, la décision d’intrusion à l’étape temporelle t est représentée comme suit (Équation 13) :

Ici,
est la probabilité d’intrusion prédite au temps t et
est le seuil de classification.
Une fois une intrusion détectée, la couche de détection d’intrusion interagit directement avec le module blockchain, qui effectue une journalisation immuable, une atténuation automatisée et une application de la sécurité en boucle fermée. Les détails des événements, y compris les informations sur la source, les informations de destination et certaines fonctionnalités de trafic, sont enregistrés dans un nouveau bloc blockchain. Les contrats intelligents exécutent des actions d’atténuation en temps réel telles que l’isolement des nœuds et les alertes aux administrateurs. Cette architecture en boucle fermée permet aux résultats de détection d’intrusion d’alimenter directement les mécanismes de prévention, minimisant ainsi la latence d’atténuation. Ainsi, la couche de détection d’intrusion sert de pont entre la détection temporelle utilisant le modèle BiLSTM étendu et la réponse sécurisée utilisant la technologie blockchain, complétant ainsi la fonctionnalité de bout en bout du cadre proposé.
Journalisation médico-légale basée sur la blockchain
Bien que le modèle BiLSTM étendu permette la détection d’intrusion en temps réel, le stockage sécurisé et l’audit vérifiable des événements d’intrusion sont tout aussi critiques dans les environnements de santé IoMT. Les mécanismes traditionnels de journalisation centralisée sont vulnérables à la falsification et compromettent la traçabilité médico-légale. Pour répondre à cette limitation, le cadre proposé intègre un module blockchain léger qui garantit l’immutabilité, la décentralisation et la réponse automatisée basée sur les contrats intelligents.
Chaque événement d’intrusion détecté génère un bloc qui est ajouté à la blockchain. Un bloc Bi est défini comme suit (Équation 14) :

Ici, Hi est le hachage cryptographique des données de l’événement, de l’horodatage et du résultat de prédiction, Ti est l’horodatage, Di contient certaines caractéristiques d’intrusion d’événement, Sigi est la signature numérique, et PrevHash relie le bloc au bloc précédent, assurant l’immutabilité.
Cette conception garantit la résistance à la falsification car toute modification de Di ou Ti modifie le hachage du bloc et rompt l’intégrité de la chaîne. Il offre également une auditabilité car toutes les anomalies détectées sont stockées et vérifiables de façon permanente. L’atténuation automatisée est prise en charge par des smart contracts qui exécutent des actions prédéfinies telles que l’isolement des nœuds et les alertes aux administrateurs. La décentralisation est obtenue grâce à plusieurs passerelles IoMT qui maintiennent le grand livre distribué, éliminant ainsi un point de défaillance unique.
La génération de blocs utilise la fonction de hachage cryptographique Keccak-256, la primitive de hachage native de l’environnement Ethereum/Solidity (invoquée via keccak256 de Solidity). Pour chaque bloc d’intrusion, le hachage du bloc est calculé comme suit :

Ici, Di est le résumé de la caractéristique événement, Ti est l’horodatage, et PrevHash est le hachage du bloc précédent. Les champs sont concaténés à l’aide de l’encodage très compact de Solidity (abi.encodePacked) avant le hachage, produisant un résumé sur 256 bits.
Le même calcul Keccak-256 est utilisé par la routine de vérification de chaîne, qui recalcule chaque hachage de bloc à partir de ses champs stockés et confirme qu’il correspond à la valeur enregistrée, validant ainsi l’intégrité de la chaîne. Keccak-256 a été choisi car il s’agit de l’algorithme de hachage résistant aux collisions standard utilisé nativement dans les smart contracts Ethereum. Le smart contract a été développé dans Solidity et compilé à l’aide du compilateur Solidity (solc) version 0.8.19. Il a été déployé sur un réseau privé Ethereum Proof-of-Authority (PoA) exploité avec Geth version 1.13.15. Le réseau blockchain était configuré avec quatre nœuds validateurs utilisant le protocole de consensus Clique Proof-of-Authority, un identifiant de chaîne de 9848, une période de blocage de 5 s et une limite de gaz de bloc de 30 000 000. La communication entre le moteur de détection d’intrusion BiLSTM étendu et la couche blockchain a été réalisée via la bibliothèque Web3.py version 6.15.1 via l’interface JSON-RPC HTTP.
Mécanisme de consensus des points d’intérêt
Parce que les systèmes IoMT de santé sont très sensibles à la latence, le cadre proposé utilise un mécanisme de consensus PoA au lieu d’une Proof-of-Work (PoW)23, coûteuse en calcul. Dans le point de retrait, un ensemble fixe de nœuds validateurs de confiance, tels que les passerelles hospitalières, autorise les transactions, offrant à la fois efficacité et résilience.
La complexité temporelle de la validation par blocs sous PoW peut s’exprimer comme suit (Équation 15) :

Ici, d représente la difficulté de minage.
En revanche, la complexité temporelle du consensus PoA est donnée comme suit (Équation 16) :

car la validation ne nécessite que la vérification par signature numérique par des nœuds validateurs autorisés.
En conséquence, PoA offre un fonctionnement à faible latence adapté aux alertes médicales en temps réel, une efficacité énergétique en évitant le minage à forte intensité de calcul, et une résilience face à un nombre limité de validateurs malveillants. Le réseau PoA était configuré avec quatre nœuds validateurs, et cette configuration est restée fixe tout au long de toutes les expériences afin d’assurer des mesures de latence cohérentes, une évaluation des performances reproductibles et une comparaison équitable entre tous les ensembles de données de benchmark.
Implémentation de la blockchain et fonctionnement des contrats intelligents
La composante blockchain a été mise en œuvre sur un réseau Ethereum autorisé fonctionnant selon le modèle de consensusPoA 24. Le réseau était exploité via le client go-ethereum (Geth) avec le protocole de consensusClique PoA 25, dans lequel un ensemble de nœuds validateurs (sealer) autorisés sont responsables de la production et de la validation des blocs. Le smart contract à intrusion logging (IoMTIntrusionLedger) a été écrit dans Solidity et déployé sur ce réseau, suivant des architectures de sécurité IoT basées sur blockchain pour une gestion d’événements décentraliséesécurisée 26. Seuls les comptes passerelle autorisés en chaîne (via la fonction de contrôle d’accès du contrat) étaient autorisés à soumettre des enregistrements d’intrusion, conformément aux architectures de smart contracts blockchain autorisées pour les applications Internetdes objets 27. La couche blockchain a été implémentée en utilisant le client go-ethereum (Geth) version 1.13.15 pour l’exploitation du réseau PoA autorisé, le compilateur Solidity (solc) version 0.8.19 pour la compilation et le déploiement de smart contracts, et la bibliothèque Web3.py version 6.15.1 pour la communication entre l’IDS et le réseau blockchain.
Les paramètres détaillés de déploiement et de configuration de la blockchain sont fournis dans le fichier supplémentaire 3C.
Chaque enregistrement d’intrusion est signé numériquement avant d’être inscrit dans le registre, soutenant l’auditabilité des soins de santé basée sur la blockchain et la tenue sécurisée des dossiersmédico-légaux 28. Les procédures de génération et de vérification de signatures numériques, y compris l’ECDSA sur la courbe secp256k129,30, sont décrites dans le Fichier Supplémentaire 3D. Chaque passerelle contient une paire de clés Ethereum composée d’une clé privée de 256 bits (32 octets) et de la clé publique correspondante, à partir de laquelle son adresse de compte est dérivée ; La génération de clés suit la procédure standard d’Ethereum, utilisant une clé privée aléatoire de 256 bits cryptographiquement sécurisée, la clé publique obtenue par multiplication scalaire secp256k1. Pour créer une signature, le client passerelle calcule le digest de la caractéristique d’événement Di et le signe avec sa clé privée en utilisant le format de signature de messages EIP-191, produisant une signature de 65 octets composée des composants r, s et v. La signature est soumise avec l’enregistrement d’intrusion. La vérification est effectuée en chaîne par le contrat intelligent : en utilisant la précompilation EVM ecreais, le contrat récupère l’adresse du signataire à partir du digest et de la signature signés et exige qu’elle soit égale à l’adresse de la passerelle autorisée soumettant la transaction. Si l’adresse récupérée ne correspond pas à une passerelle autorisée, la transaction est rejetée. Cela lie chaque entrée de registre à une passerelle autorisée spécifique et empêche les enregistrements d’intrusion non autorisés ou falsifiés.
Les contrats intelligents sont déclenchés automatiquement lors de la détection
d’intrusion, garantissant une réponse en temps réel sans intervention manuelle (Équation 17) :
(17)
Le module blockchain fonctionne en parallèle avec le classificateur BiLSTM étendu. Une fois qu’une anomalie est détectée : (i) l’événement est étiqueté et classifié par le BiLSTM, (ii) un bloc est généré, signé et ajouté au registre de la blockchain, et (iii) les contrats intelligents appliquent des politiques de réponse automatique.
Le smart contract de journalisation des intrusions (IoMTIntrusionLedger) maintient un registre uniquement annexé des blocs d’intrusion ainsi qu’un registre des comptes passerelle autorisés, et expose les fonctions résumées dans le tableau 7. Le contrat impose deux rôles d’accès via des modificateurs : onlyAdmin (l’administrateur du déploiement) et onlyGateway (comptes autorisés à soumettre des enregistrements d’intrusion). L’état se compose de la correspondance d’autorisation de passerelle, du tableau de registre de blocs, et de la tête de chaîne courante (le hachage du bloc le plus récent).
| S. Non. | Fonction / Composant | Type | Accès | Logique |
| 1 | constructeur | Constructeur | — | Définit le déployeur comme administrateur et l’autorise comme passerelle initiale. |
| 2 | setGateway (adresse, bool) | Fonction | onlyAdmin | Ajoute ou supprime un compte de passerelle autorisé ; émet GatewayUpdated. |
| 3 | recordIntrusion(nodeId, patientId, attackClass, probabilityBp, dataDigest, signature, isolate) | Fonction | onlyGateway | Calcule Hi = Keccak-256(Di ∥ Ti ∥ probabilité ∥ PrevHash) ; vérifie la signature ECDSA de la passerelle sur Di via ecrecover ; ajoute le bloc au grand livre ; avance la tête de la chaîne ; émet BlockCreated, optionnellement NodeIsolated, et AdminAlert. Retour de H. i. |
| 4 | verifyChain() | Fonction de vue | Public | Recalcule le hachage de chaque bloc à partir de ses champs stockés et vérifie la liaison PrevHash ; revient vrai seulement si toute la chaîne est cohérente (détection de falsification). |
| 5 | ledgerLength() | Fonction de vue | Public | Retourne le nombre de blocs dans le registre. |
| 6 | _recoverSigner(hachage, signature) | Fonction interne | — | Divise la signature de 65 octets en (r, s, v) et récupère l’adresse de signature via la précompilation ecreper. |
| 7 | BlockCreated / NodeIsolated / AdminAlert / GatewayUpdated | Événements | — | Émis pour que les auditeurs hors chaîne puissent piloter la journalisation, l’isolement des nœuds, les alertes administrateur et les mises à jour du registre de passerelle. |
| 8 | onlyAdmin / onlyGateway | Modificateurs | — | Limitez les fonctions à l’administrateur et aux passerelles autorisées, respectivement. |
Tableau 7 : Fonctions, événements et composants de contrôle d’accès du contrat intelligent IoMTIntrusionLedger. Ce tableau résume les principales fonctions, événements et modificateurs de contrôle d’accès implémentés dans le contrat intelligent blockchain autorisé. Ces composants supportent l’autorisation de passerelle, la journalisation des intrusions, la vérification blockchain, la génération d’événements et l’atténuation automatisée.
La propriété d’immuabilité de la blockchain découle directement de l’équation 14, où toute modification des données d’événements ou des horodatages invalide la chaîne de hachage. La blockchain offre ainsi intégrité des données, traçabilité et auditabilité aux systèmes de santé grâce à des dossiers médico-légaux immuables. Les dossiers d’intrusion des patients et des appareils restent inchangés une fois stockés, chaque bloc est lié de manière sécurisée au bloc précédent permettant la reconstruction chronologique des événements, et les administrateurs ou régulateurs de santé peuvent vérifier les incidents d’intrusion sans risque de falsification.
Fonction de perte et optimisation des modèles
Le modèle BiLSTM étendu proposé répond au problème de classification binaire consistant à distinguer entre le trafic normal et les événements d’intrusion dans les réseaux IoMT. Pour guider le processus d’entraînement, une perte binaire d’entropie croisée (BCE) est adoptée, ce qui convient parfaitement aux sorties probabilistes de la couche d’activation sigmoïde. Pour un ensemble de données avec N échantillons, la perte est définie comme suit (Équation 18) :
(18)
Ici,
est l’étiquette de vérité fondamentale de la i-ème suite d’entrée (0 = bénigne, 1 = intrusion), et
est la probabilité prédite d’intrusion.
Le cadre fonctionne comme un pipeline de classification en deux étapes. La première étape effectue la détection d’intrusion binaire : la BiLSTM étendue produit une sortie
sigmoïde et applique le seuil τ = 0,5 pour classer chaque fenêtre comme bénigne ou intrusive (Équations 12,13), entraînée avec une perte binaire pondérée en entropie croisée. Une seconde étape peut effectuer la catégorisation des attaques, dans laquelle les fenêtres identifiées comme intrusions sont transmises à un classificateur multiclasse qui attribue la catégorie d’attaque spécifique à l’aide d’une couche de sortie softmax entraînée à l’entropie croisée catégorique. La présente étude se concentre sur et évalue le stade de détection binaire. Les deux étapes partagent la même colonne vertébrale d’extraction de caractéristiques Extended BiLSTM (Conv1D, BiLSTM, couches résiduelles, de normalisation et d’attention) ; ils ne diffèrent que par leur couche de sortie (sigmoïde pour la détection et softmax pour la catégorisation) et la fonction de perte correspondante. L’étape de détection binaire et la phase de catégorisation multiclasse ont été entraînées et évaluées selon les mêmes partitions de données, graines aléatoires et conditions d’entraînement décrites ci-dessus.
Bien que le trafic IoMT soit souvent déséquilibré, une perte binaire pondérée d’entropie croisée est utilisée pour pénaliser la mauvaise classification de la classe minoritaire. Les poids de classe sont calculés en utilisant le nombre d’échantillons d’intrusion Np, le nombre d’échantillons bénins N n, et le nombre total d’échantillons N (Équations 19,20) :


Cette pondération garantit que le modèle n’est pas biaisé en faveur de la classe dominante de trafic bénin et reste sensible aux événements d’intrusion rares mais critiques.
La perte binaire pondérée en entropie croisée est donnée comme suit (Équation 21) :
(21)
La formation était réalisée à l’aide de mini-séries de taille 64. Au début de chaque époque, les échantillons d’entraînement étaient aléatoirement regroupés avant d’être partitionnés en lots, de sorte que la composition des lots variait selon les époques et que le modèle ne voyait pas d’exemples dans un ordre fixe. Les lots n’étaient pas explicitement équilibrés ou stratifiés par classe ; au contraire, chaque lot reflétait la distribution naturelle des classes de l’ensemble d’entraînement, et le déséquilibre de classe était corrigé par la perte binaire pondérée par classe (Équations 19–21). Le sous-ensemble de validation réservé à la partition d’entraînement restait fixe à travers les époques et n’était pas regroupé dans les lots d’entraînement.
Les poids de classe dans la perte binaire pondérée par entropie croisée n’ont pas été définis manuellement mais calculés automatiquement pour chaque jeu de données à partir de ses décomptes de classes dans l’ensemble d’entraînement selon les équations 19 et 20. Pour le jeu de données UNSW-NB15, les poids de classe résultants concernaient
la classe normale et
la classe d’intrusion. Pour le jeu de données CICIDS2017, les poids de classe résultants concernaient
la classe normale et
la classe intrusion. Pour le jeu de données Bot-IoT (sous-ensemble de 5 %), les poids de classe résultants concernaient
la classe normale et
la classe intrusion.
Stratégie d’entraînement et optimisation
Le modèle BiLSTM étendu a été entraîné en utilisant des mini-lots de taille B = 64 avec perte binaire pondérée d’entropie croisée, l’optimiseur Adam, et un arrêt précoce basé sur la perte de validation. L’entraînement était limité à 50 époques, et l’arrêt précoce était appliqué avec patience K = 5. Si la perte de validation ne s’améliorait pas pendant cinq époques consécutives, l’entraînement était interrompu et les poids du modèle étaient rétablis à ceux de l’époque ayant la perte de validation la plus faible. Ainsi, 50 époques représentaient le budget maximal de formation plutôt qu’une durée fixe. Une probabilité d’abandon de 0,3 a été appliquée pour la régularisation. Les réglages architecturaux comprenaient 64 filtres Conv1D, 64 unités LSTM par direction, une longueur de fenêtre de T = 20, et une foulée de s = 1. La stratégie d’entraînement adoptée est résumée dans l’Algorithme 3 (Fichier Supplémentaire 1). Les équations de mise à jour d’Adam utilisées pour l’optimisation sont fournies dans le fichier supplémentaire 3A.
L’optimiseur Adam était configuré avec un taux d’apprentissage de
, un taux de désintégration au premier moment (β1) de 0,9, un taux de désintégration au second moment (β2) de 0,999, et une constante de stabilité numérique (
) de 1 × 10-7. Aucune option d’optimiseur supplémentaire n’a été utilisée, et aucune décroissance de poids ni découpage de gradient n’a été appliquée.
Génération d’alertes et atténuation automatisée
La détection seule est insuffisante dans les réseaux IoMT sensibles à la latence, où une réponse rapide est cruciale pour garantir la sécurité des patients. La couche de génération et d’atténuation d’alertes opérationnelle permet de prendre la décision d’intrusion prise par le modèle BiLSTM étendu et le mécanisme de journalisation blockchain. Si δt = 1, le module blockchain ajoute un nouveau bloc contenant les détails
de l’intrusion . Simultanément, un contrat intelligent est exécuté pour déclencher des actions d’atténuation (Équation 22) :
(12)
Ici, BlockCreation assure une journalisation médico-légale immuable de l’événement, NodeIsolation (n j) met en quarantaine le nœud IoMT compromis pour éviter d’autres dommages, et AdminAlert fournit une notification en temps réel aux administrateurs système. Pour faire fonctionner ce pipeline de réponse à double couche, le pseudocode est présenté dans l’Algorithme 4 (Fichier Supplémentaire 1).
Le traitement des événements par smart contract et les mécanismes de réponse hors chaîne sont décrits dans le fichier supplémentaire 3E.
Chaque entrée engagée dans le registre blockchain est stockée sous forme d’enregistrement IntrusionBlock, dont les champs et formats de données sont listés dans le tableau 8. Le registre est un tableau uniquement à ajouter de ces enregistrements, et la tête de chaîne actuelle stocke le hachage du bloc le plus récemment ajouté.
| S. Non. | Terrain | Type de données | Taille | Description |
| 1 | hashId | bytes32 | 32 octets | Hachage de bloc Hi = Keccak-256(Di ∥ Ti ∥ probabilité ∥ PrevHash) |
| 2 | Horodatage | uint256 | 32 octets | Temps de création du bloc Ti (secondes d’époque Unix, à partir de l’horodatage du bloc) |
| 3 | nodeId | bytes32 | 32 octets | Identifiant du nœud IoMT nj |
| 4 | patientId | bytes32 | 32 octets | Identifiant patient/appareil (métadonnées médico-légales) |
| 5 | Classe d’attaque | uint16 | 2 octets | Code de catégorie d’attaque (0 = Normal, 1 = DDoS, 2 = Usurpation, ...) |
| 6 | probabilitéBp | uint16 | 2 octets | Probabilité d’intrusion prédite ŷ en points de base (0–10000, c’est-à-dire 0,00–100,00 %) |
| 7 | dataDigest | bytes32 | 32 octets | Le résumé Di des événements sélectionnés présente |
| 8 | Signature | Octets | Variable (65 octets) | Signature ECDSA Sigi du digest d’événements par la passerelle (r, s, v) |
| 9 | prevHash | bytes32 | 32 octets | Hachage du bloc précédent (PrevHash), reliant la chaîne |
| 10 | isolé | bool | 1 octet | Si l’isolation des nœuds a été déclenchée pour cet enregistrement |
Tableau 8 : Structure de l’enregistrement IntrusionBlock stocké dans le registre blockchain. Ce tableau décrit les champs, types de données, tailles de stockage et objectifs des enregistrements du registre blockchain utilisés pour stocker les événements d’intrusion. La structure prend en charge la vérification de l’intégrité cryptographique, la traçabilité médico-légale et les mécanismes automatisés de réponse.
La latence globale d’atténuation peut s’exprimer comme la somme du délai de détection (Td) du modèle BiLSTM étendu et du délai d’exécution de la blockchain (Tb) (Équation 23) :
(23)
Analyse de la complexité computationnelle
L’efficacité du cadre BiLSTM–Blockchain étendu proposé est déterminée à la fois par le coût de calcul du modèle BiLSTM et par la surcharge introduite par le module blockchain. Le cadre proposé intègre la détection étendue de BiLSTM avec la journalisation blockchain afin de satisfaire aux exigences de sécurité fondamentales de la triade Confidentialité, Intégrité et Disponibilité (CIA).
Soit la longueur de la séquence d’entrée prétraitée T, la dimension des caractéristiques d, et la dimension cachée du BiLSTM h.
Pour chaque pas de temps, un BiLSTM traite une entrée de dimension d de taille cachée h. Puisqu’elle est bidirectionnelle (avant + arrière) (Équation 24) :
) (24)
Ici, T est la longueur de la suite (pas de temps), d est la dimension de la caractéristique d’entrée, h est la dimension d’état caché
La couche d’attention calcule les poids d’importance et agrège les états cachés avec complexité (Équation 25).
(25)
qui est linéaire à la fois dans la longueur de la suite T et dans la dimension cachée h.
La complexité globale de détection par séquence est donc donnée comme suit (Équation 26) :
(26)
démontrant que la modélisation temporelle domine le coût computationnel, tandis que le mécanisme d’attention n’introduit qu’une surcharge légère.
Pour chaque événement d’intrusion détecté, la journalisation blockchain effectue des opérations de hachage, de signature et d’ajout de blocs (Équation 27) :
(27)
Pour N événements de détection d’intrusion, la complexité combinée devient la suivante (Équation 28) :
(28)
qui peut être simplifiée comme suit (Équation 29) :
(29)
car la surcharge blockchain croît linéairement avec le nombre d’événements et reste négligeable comparée aux calculs de traitement de séquences.
La complexité computationnelle est résumée dans les équations 24–29. Une interprétation détaillée est fournie dans le Fichier Supplémentaire 3F.