{ "cells": [ { "cell_type": "markdown", "id": "0ca61df9", "metadata": { "id": "0ca61df9" }, "source": [ "# **Teoría de la Información y la Comunicación**\n", "## Notebook de Práctica — Clase 3\n", "### **Entropía y Medida de la Información**\n", "\n", "**Carrera:** Ingeniería en Ciberseguridad y Gestión de TI \n", "**Unidad:** Fundamentos de la Teoría de la Información y Modelos de Comunicación \n", "**Nivel Python:** Introductorio\n", "\n", "---\n", "\n", "Este notebook complementa la lectura de la Clase 3 con ejemplos ejecutables en Python.\n", "Cada sección sigue la misma estructura:\n", "\n", "1. 🔍 **Recordatorio teórico** — qué mide la fórmula \n", "2. 🏢 **Escenario** — contexto real de ciberseguridad \n", "3. 💻 **Código** — cálculo paso a paso \n", "4. 📊 **Visualización** — gráfico de apoyo \n", "5. 🧩 **Ejercicio propuesto** — práctica autónoma\n", "\n", "> **Cómo usar este notebook:** Ejecuta cada celda en orden con `Shift + Enter`.\n", "> No necesitas modificar nada para ver los resultados; los ejercicios sí piden que cambies valores.\n" ] }, { "cell_type": "markdown", "id": "ac154940", "metadata": { "id": "ac154940" }, "source": [ "## 0. Librerías necesarias\n", "\n", "Ejecutá esta celda primero. Sólo usamos `math`, `matplotlib` y `numpy`, que vienen instalados con Anaconda/Google Colab." ] }, { "cell_type": "code", "execution_count": 1, "id": "e7cc38c2", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "e7cc38c2", "outputId": "8e0a98fa-174d-4337-c2f6-650111f4a896" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✅ Librerías cargadas correctamente.\n" ] } ], "source": [ "import math\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.patches as mpatches\n", "\n", "# Configuración general de gráficos\n", "plt.rcParams['figure.figsize'] = (9, 4)\n", "plt.rcParams['font.size'] = 11\n", "plt.rcParams['axes.spines.top'] = False\n", "plt.rcParams['axes.spines.right'] = False\n", "\n", "print(\"✅ Librerías cargadas correctamente.\")\n" ] }, { "cell_type": "markdown", "id": "471a7c2e", "metadata": { "id": "471a7c2e" }, "source": [ "---\n", "## 1. Medida de la Información — I(x)\n", "\n", "### 🔍 Recordatorio teórico\n", "\n", "La **medida de la información** cuantifica la sorpresa que provoca la ocurrencia de un evento.\n", "Formalmente:\n", "\n", "$$I(x_i) = -\\log_2\\, p(x_i) \\quad [\\text{bits}]$$\n", "\n", "**Propiedades intuitivas:**\n", "- Un evento muy probable → baja sorpresa → pocos bits de información.\n", "- Un evento muy raro → alta sorpresa → muchos bits de información.\n", "- Si $p = 1$ (certeza absoluta) → $I = 0$ bits.\n" ] }, { "cell_type": "markdown", "id": "1bd4c4f6", "metadata": { "id": "1bd4c4f6" }, "source": [ "### 🏢 Escenario — CyberGuard S.A.\n", "\n", "El equipo de respuesta a incidentes de **CyberGuard S.A.** registra alertas en su sistema SIEM\n", "durante una semana. El analista senior quiere saber cuánta información aporta cada tipo de\n", "alerta, para priorizar cuáles merecen atención inmediata.\n", "\n", "Los datos históricos muestran que, en condiciones normales:\n", "- 📗 `INFO` (log de auditoría rutinario): ocurre con probabilidad **0.70**\n", "- 📙 `WARNING` (uso inusual de recursos): ocurre con probabilidad **0.20**\n", "- 📕 `CRITICAL` (intento de intrusión): ocurre con probabilidad **0.10**\n" ] }, { "cell_type": "code", "execution_count": 2, "id": "843a6171", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "843a6171", "outputId": "d119dad7-23cd-427e-ac17-8afa4d4e0a8d" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Evento P(x) I(x) [bits]\n", "-----------------------------------\n", "INFO 0.70 0.5146\n", "WARNING 0.20 2.3219\n", "CRITICAL 0.10 3.3219\n", "\n", "Interpretación:\n", " → Una alerta CRITICAL aporta 3.32 bits, es decir,\n", " 6.5x más información que una alerta INFO (0.51 bits).\n", " → Esto justifica dedicarle más recursos de análisis.\n" ] } ], "source": [ "# ── Definimos las probabilidades ────────────────────────────────────────────\n", "eventos = ['INFO', 'WARNING', 'CRITICAL']\n", "probabilidades = [0.70, 0.20, 0.10]\n", "\n", "# ── Función: medida de la información ───────────────────────────────────────\n", "def informacion(p):\n", " \"\"\"Calcula I(x) = -log2(p). Devuelve 0 si p == 0 (convenio).\"\"\"\n", " if p == 0:\n", " return 0\n", " return -math.log2(p)\n", "\n", "# ── Cálculo para cada evento ─────────────────────────────────────────────────\n", "print(f\"{'Evento':<12} {'P(x)':<8} {'I(x) [bits]':>12}\")\n", "print(\"-\" * 35)\n", "\n", "bits = []\n", "for evento, p in zip(eventos, probabilidades):\n", " i = informacion(p)\n", " bits.append(i)\n", " print(f\"{evento:<12} {p:<8.2f} {i:>12.4f}\")\n", "\n", "print()\n", "print(\"Interpretación:\")\n", "print(f\" → Una alerta CRITICAL aporta {bits[2]:.2f} bits, es decir,\")\n", "print(f\" {bits[2]/bits[0]:.1f}x más información que una alerta INFO ({bits[0]:.2f} bits).\")\n", "print(f\" → Esto justifica dedicarle más recursos de análisis.\")\n" ] }, { "cell_type": "code", "execution_count": 3, "id": "cb4e881e", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 473 }, "id": "cb4e881e", "outputId": "c9b07227-3ea2-4f05-9e41-96c0d36c9a60" }, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "<>:6: SyntaxWarning: invalid escape sequence '\\l'\n", "<>:6: SyntaxWarning: invalid escape sequence '\\l'\n", "/tmp/ipykernel_16094/965046711.py:6: SyntaxWarning: invalid escape sequence '\\l'\n", " ax.plot(p_vals, i_vals, color='#2E75B6', linewidth=2, label='$I(x) = -\\log_2 p$')\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3cAAAGDCAYAAACIr+kwAAAAOnRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjEwLjAsIGh0dHBzOi8vbWF0cGxvdGxpYi5vcmcvlHJYcgAAAAlwSFlzAAAPYQAAD2EBqD+naQAAlPFJREFUeJzs3Xd4U2UbBvD7ZKcr3S2Ulk2BMmUKsspWtqCgKCCggIpbQUVAZCii6CfgQkBEQbYKMmQJInuD7FWg0J3OJE1yvj/ShoambZqmpC3377pykbznPec8aU5CnrxLEEVRBBEREREREZVrEncHQERERERERCXH5I6IiIiIiKgCYHJHRERERERUATC5IyIiIiIiqgCY3BEREREREVUATO6IiIiIiIgqACZ3REREREREFQCTOyIiIiIiogqAyR0REREREVEFwOSOiIiojFq2bBmmT5+OjIwMd4dCRETlAJM7onKsY8eOqFatmrvDKNcWL14MQRCwc+dOd4fywJk/fz7q1q0LpVIJQRBw9epVd4d03zjy3l2xYgWGDx+OyMhIeHp63p/AyrCdO3dCEAQsXrzY3aEUqCx8JvMzjejBxuSO6D7Q6/X45ptv0KVLFwQFBUEul8Pf3x/t2rXDJ598guTkZHeH6BSz2YwVK1agT58+qFy5MpRKJby8vFC/fn2MHDkSW7dudXeILnfy5EkMHToUtWvXhlqthr+/P6KiojB8+HDs2LGj2McbMGAABEFA+/btSyHa0tGxY0fIZLISHWPHjh148cUXUbduXXz99ddYunQpgoKCXBRh+XfgwAGMHDkSP/74IwYOHOjucO6bnTt3YsqUKUhJSXF3KFSAY8eOYcqUKaX6Y4xer8f8+fPRqlUrBAcHQ6VSITw8HNHR0fjggw+g1+utdXOT2Z9++sladvXqVQiCUOht06ZN1vrDhw+3lhf0Ob59+3ZrnVGjRpXacycqqZL970xERbp+/Tp69+6NEydO4JFHHsFrr72GSpUqISUlBXv37sWkSZOwevVq7N+/392hFktSUhIGDBiAXbt2oUmTJhg1ahSqVq2K7OxsnD9/Hhs2bMAPP/yAH374ASNGjHB3uC6xYcMG9OvXD56ennj22WcRFRWFrKwsXLhwAVu2bIGXlxc6derk8PFu376N33//HbVq1cLu3btx7tw5REZGluIzKDtyE/8ffvgB/v7+bo7m/tuyZQtEUSxw+9GjR/HLL7+gd+/e9zEq99u5cyemTp2K4cOHw9fX12Zb+/btkZWVBblc7p7gCIAluZs6dWqptVKaTCZ06dIFe/bsQdu2bfHWW2/Bz88PMTExOHLkCD755BOMHz8eSqWyyGN17NgRI0eOtLutcePG+cpUKhUWLlxo93P8+++/h0qlgk6nK/6TIrqPmNwRlSK9Xo9evXrhzJkzWLZsGZ566imb7a+99hpu3LiBr776yk0RFk9qaip8fHwAAE888QR27dqFzz//HK+++mq+unPmzMH69eshlUrvc5R3iaKIjIwMeHl5ueR4EyZMgNFoxK5du+x+Mbh9+3axjrd48WKYzWasXLkSrVq1wvfff4/Zs2e7JNayLvdv5erEztWveWlRKBSFbn/hhRfuUyT3V97PkOKSSCRQqVQujogcVZLXrjjWrVuHPXv2oH///lizZk2+7YmJiQ7HUbNmTQwdOtThcw8YMACrV6/GV199ZfPjQnJyMtauXYvHH38cy5Ytc/h4RO7AbplEpeiHH37AyZMn8eqrr+ZL7HJVqVIFs2bNAgB8+umnEAQBGzdutFu3UaNGqFSpErKzs23Kr127hscffxx+fn7w9PRE165dceTIEbvHWL16NTp06AAfHx+o1Wo0bdoU33//fb561apVQ8eOHXHixAk89thj8PPzg0ajAQD88ccf2LZtGwYPHmw3sQMAQRDQr18/m5aHwsbMTJkyJd+4q7Nnz+LFF19EgwYNoNFooFar0bBhQ3z66acwmUw2++d2zfnrr78wc+ZM1KlTB0qlEp9++ikAIDs7G5MnT0a1atWgUqlQr149LFiwwG7sBblw4QICAgLsJnYAEBoa6vCxRFHE999/j86dO6NJkybo27cvfvzxx3yvbXmR260pNTUVL7/8MipVqgSlUomHHnoImzdvttbLvQYWLVoEANZuTh07drTWOXv2LAYPHoyQkBAolUrUqFEDb775JlJTU23OWdhrntsta8qUKVizZg0eeughqNVqREREWK8JrVaLF154AaGhoVCr1YiOjsb58+dtzmE2mzFjxgx07NgRlSpVgkKhQFhYGIYNG4br16/b/Vvs3r0bffv2RVBQEJRKJSIiIvDUU0/h0qVL1joFtXrs378fvXr1gr+/P1QqFerWrYtp06bBYDDY1Mt9v5w/fx4ffPAB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uzjXV0GeeeYZEYC4du1am/KZM2eKAGxe16ysLDE0NFRs2bKlqNPpbOqvWrVKBCAuXry4yHPa+yw0mUxiu3btRI1GIxoMBmt57vsi7/OeO3euCEBcs2aNzTEMBoPYtGlTsXr16tayol47e8fPVZz3S0H0er340EMPWV/XLl26iO+99574+++/2z12bjx53x+5z6GwW165n0cxMTHikiVLRADi0aNHRVEUxf3794sAxJ9//tl63JEjRxb5PIjchd0yiUqRVqst9hiFMWPGwGg02nQ9SktLw/Lly9GlSxe7vxy+++67No+bNWuG7t27Y9euXdZfLZctWwZRFDFy5EgkJCTY3Pr06QOz2Yy//vrL5jj+/v52W+e0Wi0A2H1uYWFhCAoKst5K0sKVd/p3vV6PpKQkJCQkoEePHjCZTDh06FC+fV566aV8461Wr14NAJg4cSIEQbCWV69eHU8//bTD8QwcOBB79uzBk08+iaSkJCxatAjjxo1D/fr10b59e1y+fNmh4yQmJmLt2rUYPHiwdQyRRCLBsGHD8Ndff+HatWsOx1TWvPnmmzaPW7duDS8vr3zdHe2Jj4/H7t270bVrV7Rt2zbfcT09Pa2vZV72XvNc/fv3R40aNayPlUolWrVqBVEU8dprr9nU7dChAwDYxCoIgrUlx2w2IyUlBQkJCWjSpAk0Go3NREgrV66EXq/HBx98YLdV4N5Wt7yOHDmCq1ev4plnnkGtWrVstuV2S7T33F977TWb44aHhyMyMtKhv3euOnXq5GstfvHFF+Hr62tzztWrV8PHxwevv/66Td0OHTqgU6dO2L59e76Zfx977DE0aNDA4VicNXToUFStWtX6WCKRYOLEida4Aeevr7zMZjPWrVuH+vXro1+/fjbbXn311XzX4V9//YXbt29j+PDhSEtLs/ncbd++PTw8PGy6LRck72dhVlYWEhMTkZSUhB49ekCr1eLcuXOF7r906VJUq1YN7dq1s4lBq9WiT58+uHLlSr5rxpnXrjjvl4IoFArs2rULM2fORGRkJLZv347p06ejd+/eCA0NxZw5cxyOp2fPnti6davdW0EGDRoEjUaDhQsXArC0xvv7+5e4twbR/cJumUSlSKPRIC0trVj7tGvXDlFRUfj+++/xzjvvQBAE/PLLL8jIyMDzzz+fr76vry8qV66cr7x+/fr4888/cenS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8euvv46oqCisX78egYGBePfdd10W4IPCdsydwY2REBERERFReeRUt8yYmBjUqlULAHDz5k0cPnwYu3btQrt27WA0GjF27FiXBvkg0HiyWyYRERERETnPqZY7tVqN1NRUAMC2bdvg5eWFNm3aAAB8fX2h1WpdF+EDIshbZb0fl6pzYyRERERERFQeOdVy17JlS8yaNQsSiQSzZ89Gz549IZVKAQCXLl0q1pIJZBHieze5u5PC5I6IiIiIiIrHqZa72bNnIzY2Fr1790Z6ejqmT59u3bZixQprKx45zlslg1phSZDvaJncERERERFR8TjVchcVFYXLly8jMTEx3xpzc+bMcdnC5Q8SQRAQ6qvClbgM3E7RQRTFUllSgoiIiIiIKianWu6ee+45XLlyxe7i4T4+Pnj77bdLHNiDKERj6ZqpyzYhNYuTqhARERERkeOcSu4WL16M+Ph4u9sSEhKwZMmSEgX1oMpN7gDgNsfdERERERFRMTiV3AEosMvghQsX7LboUdFCfdXW+xx3R0RERERExeHwmLsFCxZgwYIFACyJ3VNPPQW1Wm1TR6fT4erVqxg0aJBro3xAhLLljoiIiIiInORwcle5cmU0a9YMAHDq1ClERkYiKCjIpo5CoUC9evUwcuRI10b5gLBZDoEtd0REREREVAwOJ3d9+/ZF3759rY8nTZqEGjVqlEpQDyrbMXdZboyEiIiIiIjKG6eWQli0aJGr4yAAoWy5IyIiIiIiJzmc3I0fPx5vvvkmIiIiMH78+ELrCoKAL774osTBPWi8VHJ4qWRI1xlxh2PuiIiIiIioGBxO7n7//XeMHDkSERER+O233wpdYJvJnfNCNCqk69JxW8uFzImIiIiIyHEOJ3dXrlyx3r969WppxEIAKvupcelOOgxGM+JS9Tbj8IiIiIiIiAri9Dp3VDqqBnla71+Nz3BjJEREREREVJ44NaEKACQkJODzzz/H/v37ERsbi0qVKqF169Z45ZVX8i2RQI6rlie5uxafgVa1uCA8EREREREVzamWu/3796N27dr46quvoNFo0KFDB2g0Gvzvf/9DrVq1sH//flfH+cCoGmib3BERERERETnCqZa7F198EVFRUdi4cSN8fHys5VqtFj179sRLL72EgwcPuizIB4lNy10CkzsiIiIiInKMUy13p0+fxoQJE2wSOwDQaDSYMGEC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5oiIiIiIiOh+cGpClREjRmDs2LHIyspC165d4evrm6/OQw89VNLYyEkv96iD7afvwGgSsWTXFfRuFoaIQE93h0VERERERKXIqTF3Eoltg58gCNb7oihCEASYTKaSR+diFX3MXV5z/jiLH/++AgBoXTsAX49qYfM6ERERERFRxeJUy92OHTtcHQe52NiutbDlRCxup+iw70Ii/jwWi0ebVnZ3WEREREREVEqcarkrrx6kljsA2HnmDl5ZfAQA4O+lwPo328PHQ+7mqIiIiIiIqDQ4vYg5AJw+fRp79uxBUlIS/P398cgjjyAqKspVsVEJdawfgugGIdh+6g6S0g34fONZTB7Y0N1hERERERFRKXAouTMajZDJ7lbV6/V45plnsHr1aoiiCKVSCb1eD0EQMHDgQCxduhQKhaLUgibHTehTD/vOJyDTYMKaAzfQsX4IOtQPdndYRERERETkYg4thdCxY0fEx8dbH7/77rvYsGEDvv76a6SkpCArKwspKSn4+uuvsWHDBrz77rulFjAVT4ivGq/3urv23ZRVJ5GYrndjREREREREVBocSu5q1qyJZs2a4fDhwwCA5cuXY+bMmRg9erR17JqPjw9Gjx6N6dOn45dffim9iKnYBrYKR/t6QQAsa99NXXkKD9BQSyIiIiKiB4JDyd2SJUswd+5c9O/fHwCQlJSEunXr2q1bt25dJCUluS5CKjFBEDBlYEP4eVq6yu76Lw6r98e4OSoiIiIiInIlh5I7ABgwYAAOHToEwJLALV261G69n376qcDEj9wnwFuJKYMaWB9/8tt/OHsr1Y0RERERERGRKxVrtszgYMtEHJMmTcKgQYNw9epVPP744wgJCUFcXBxWrVqFf//9FytXriyVYKlkOtYPwRMPR+DXf69DbzTjjR+P4Jfxbbk8AhERERFRBeD0One//fYbpk6dimPHjkEURQiCgCZNmmDKlCno3bu3q+N0iQdtnTt7DEYThs/fj9M3tACADvWCMXfYQ5BIBDdHRkREREREJVHiRcwzMjKQkpICX19feHp6uiquUsHkzuJWchYGf/EPtJnZAIAXu9fG851ruTkqIiIiIiIqCYfH3BXE09MTYWFhZT6xo7sq+6kxc0hjCDmNdfM2X8DWE7HuDYqIiIiIiErE4TF348ePx5tvvomIiAiMHz++0LqCIOCLL74ocXBUetpG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TlofCmRnZ8PU1PRfiz/SX91ZU83NzSguLtZoLyoqwrBhwyCTyXSVMumhfnlu/kJvxKCnqqurhY2NjfD09BQnT54UP/74o7CwsBAhISEacV5eXmLMmDEabYmJiUIqlYqkpCSRm5sr/P39xeDBg8Xt27d7cwrUx3R1TV29elWYm5uLCRMmiPz8fFFQUKB+3Lp1q7enQX1Id96nnsX73FF31tORI0eERCIRn332mcjKyhLx8fHCyMhIREZG9uYUqI/p6pqqra0Vo0aNEmPHjhVpaWkiJydHbNiwQRgYGIi4uLjengb1IXV1dUKhUAiFQiGmT58uRo4cqT6urKwUQujHuTmLOx25evWq8Pb2FqampmLYsGFi/fr1oqGhQSPG09NT2NnZabS1tLSIhIQEMWLECCGVSsWkSZPE2bNnezFz6qu6sqZSU1MFgDYfQUFBvTsB6nO6+j71LBZ3JET31tOBAweEo6OjMDY2FnZ2diIhIUG0tLT0UubUV3V1Td28eVMsWLBA2NraCplMJhwdHUVSUpJQqVS9mD31NSUlJe2eE+Xl5Qkh9OPcXCIE7+hIRERERETU3/E7d0RERERERHqAxR0REREREZEeYHFHRERERESkB1jcERERERER6QEWd0RERERERHqAxR0REREREZEeYHFHRERERESkB1jcERERERER6QEWd0RE1CNiYmIgkUjUDysrK3h5eeHMmTM9Mv7p06chkUhw4cKFbo9VWloKiUSCQ4cOPTdu7969kEgkuHfvXrv97O3t8fHHHz93HKVSCYlEgr1793Y7dwCwsLBATExMj4wFAMePH8eIESPQ2NjY4T75+fkYOnQoamtreywPIiLqHhZ3RETUY0xNTVFQUICCggIkJyfj/v378Pb2xpUrV150al3y9ttvo6CgABYWFu3GZGRkYP369b2XVA8TQiAyMhKhoaEwNjbucL/JkyfD0dER27Zt02F2RETUGSzuiIioxxgYGMDDwwMeHh4ICAjA0aNHoVKpsGvXrjbjhRBoaGjo5Sw7zsrKCh4eHhgwYEC7Ma6urrC3t++9pHrY6dOnceXKFSxdurTTfZcvX47k5GQ0NTXpIDMiIuosFndERKQzo0aNgpWVFUpKSgAA77//PiZMmIDMzEw4OztDKpXi6NGjAID09HS4uLjAxMQEtra2WLt2Lerr67XGrKysxLx58zBw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jw+++uorBAcH4+eff9aKTUlJwY0bN+Dn54e0tDTExcVh9erV6r9v374dnp6e+OSTT7B8+XI4OTkhIiKizeeNj4+HEALz58/H5s2bERISgvj4+G7PZdeuXcjNzYWvry+ysrLwyy+/aMRYW1tDoVCgsrISPj4+SEpKQkpKCsaOHasR5+rqCoVCoZ5vamoqDhw40O535J7l5+eHuXPn4qOPPsLKlSvh5uamdVUxICAAJ0+ehBACANDY2IglS5bAzc0NYWFhAP6/lXbv3r0oKytDeHi4uu/FixdRVVUFf3//Tr9ORETU8ySi9d2ciIiI9Ia9vT3eeecd7Nix47lxVVVVGDlyJLKysjBt2rROPUdYWBiKiopw6tSp7qRKREQ9hFfuiIiI/sOsrKywatUqJCUldapfbW0tfvjhB8TExOgkLyIi6jwWd0RERP9xERERcHFxQWNjY4f7/P3334iLi+v01T4iItIdbsskIiIiIiLSA7xyR0REREREpAdY3BEREREREekBFndERERERER6gMUdERERERGRHmBxR0REREREpAdY3BEREREREekBFndERERERER6gMUdERERERGRHmBxR0REREREpAf+B/YLjsZRRbpCAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ── Visualización: curva I(p) y posición de cada evento ─────────────────────\n", "p_vals = np.linspace(0.001, 1.0, 500)\n", "i_vals = -np.log2(p_vals)\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(p_vals, i_vals, color='#2E75B6', linewidth=2, label='$I(x) = -\\log_2 p$')\n", "\n", "colores = ['#1D6F3B', '#F4A261', '#E63946']\n", "for evento, p, i, c in zip(eventos, probabilidades, bits, colores):\n", " ax.scatter(p, i, color=c, s=100, zorder=5)\n", " ax.annotate(f'{evento}\\n({i:.2f} bits)', xy=(p, i),\n", " xytext=(p + 0.03, i + 0.2), fontsize=9, color=c)\n", "\n", "ax.set_xlabel('Probabilidad p(x)')\n", "ax.set_ylabel('Información I(x) [bits]')\n", "ax.set_title('CyberGuard S.A. — Información por tipo de alerta SIEM')\n", "ax.legend()\n", "plt.tight_layout()\n", "plt.show()\n" ] }, { "cell_type": "markdown", "id": "e74bd444", "metadata": { "id": "e74bd444" }, "source": [ "### 🧩 Ejercicio 1\n", "\n", "El mismo sistema SIEM de CyberGuard recibe un nuevo tipo de alerta:\n", "- `BREACH`: acceso no autorizado confirmado, probabilidad estimada **0.02**\n", "\n", "**Tareas:**\n", "1. Calcula `I(BREACH)` usando la función `informacion(p)`.\n", "2. Compara el valor con `I(CRITICAL)` y explica con tus palabras por qué es mayor o menor.\n", "3. ¿Qué implicación tiene esto para la priorización de alertas?\n", "\n", "```python\n", "# Tu código aquí\n", "p_breach = 0.02\n", "i_breach = informacion(p_breach)\n", "print(f\"I(BREACH) = {i_breach:.4f} bits\")\n", "```\n" ] }, { "cell_type": "code", "execution_count": 4, "id": "0AIUE6Z6sKgB", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "0AIUE6Z6sKgB", "outputId": "7f413051-2682-4f72-f48e-2d71dec677b6" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "I(BREACH) = 5.6439 bits\n", "I(CRITICAL) = 3.3219 bits\n" ] } ], "source": [ "# 1. Calcula I(BREACH) usando la función informacion(p).\n", "p_breach = 0.02\n", "i_breach = informacion(p_breach)\n", "print(f\"I(BREACH) = {i_breach:.4f} bits\")\n", "\n", "# 2. Compara el valor con I(CRITICAL) y explica con tus palabras por qué es mayor o menor.\n", "print(f\"I(CRITICAL) = {bits[2]:.4f} bits\")\n" ] }, { "cell_type": "markdown", "id": "882a14df", "metadata": { "id": "882a14df" }, "source": [ "---\n", "## 2. Entropía de Shannon — H(X)\n", "\n", "### 🔍 Recordatorio teórico\n", "\n", "La **entropía** es el promedio ponderado de la información de todos los eventos posibles de una\n", "fuente. Responde a: *¿cuánta incertidumbre tiene el sistema en promedio?*\n", "\n", "$$H(X) = -\\sum_{i=1}^{n} p(x_i)\\, \\log_2 p(x_i) \\quad [\\text{bits}]$$\n", "\n", "A diferencia de $I(x_i)$, que mide la sorpresa de **un** evento, $H(X)$ caracteriza **toda la fuente**.\n" ] }, { "cell_type": "markdown", "id": "8d20d38e", "metadata": { "id": "8d20d38e" }, "source": [ "### 🏢 Escenario — NetShield Consulting\n", "\n", "El equipo de analistas de **NetShield Consulting** monitorea un servidor de base de datos\n", "corporativo. En condiciones normales, las operaciones SQL se distribuyen así:\n", "\n", "| Operación | Probabilidad |\n", "|-----------|-------------|\n", "| `SELECT` | 0.90 |\n", "| `UPDATE` | 0.08 |\n", "| `DELETE` | 0.02 |\n", "\n", "Un día, el sistema de detección dispara una alerta: el porcentaje de operaciones `DELETE`\n", "subió al **25 %**. El analista necesita calcular la entropía antes y después del cambio para\n", "demostrar que hubo una desviación estadística significativa.\n" ] }, { "cell_type": "code", "execution_count": 5, "id": "c94ebff6", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "c94ebff6", "outputId": "0c96dc93-6426-42bf-a93b-83d25ddd3951" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "✅ Librerías cargadas correctamente.\n", "=== Condiciones NORMALES ===\n", " SELECT p = 0.90 I(x) = 0.1520 bits\n", " UPDATE p = 0.08 I(x) = 3.6439 bits\n", " DELETE p = 0.02 I(x) = 5.6439 bits\n", "\n", " H(X) normal = 0.5412 bits\n", "\n", "=== Condiciones ANÓMALAS (posible ataque) ===\n", " SELECT p = 0.70 I(x) = 0.5146 bits\n", " UPDATE p = 0.05 I(x) = 4.3219 bits\n", " DELETE p = 0.25 I(x) = 2.0000 bits\n", "\n", " H(X) anómalo = 1.0763 bits\n", "\n", " Incremento de entropía: Δ H = +0.5351 bits\n", "\n", "Interpretación:\n", " → La entropía aumentó: el sistema se volvió más impredecible.\n", " → Un aumento en DELETE puede indicar eliminación masiva no autorizada,\n", " sabotaje interno, o actividad de ransomware (borra antes de cifrar).\n" ] } ], "source": [ "import math\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import matplotlib.patches as mpatches\n", "\n", "# Configuración general de gráficos\n", "plt.rcParams['figure.figsize'] = (9, 4)\n", "plt.rcParams['font.size'] = 11\n", "plt.rcParams['axes.spines.top'] = False\n", "plt.rcParams['axes.spines.right'] = False\n", "\n", "print(\"✅ Librerías cargadas correctamente.\")\n", "\n", "# ── Función: entropía de Shannon ────────────────────────────────────────────\n", "def entropia(probs):\n", " \"\"\"\n", " Calcula H(X) = -sum(p * log2(p)) para una lista de probabilidades.\n", " Ignora automáticamente valores p == 0.\n", " \"\"\"\n", " return -sum(p * math.log2(p) for p in probs if p > 0)\n", "\n", "# ── Escenario NORMAL ─────────────────────────────────────────────────────────\n", "ops_normal = ['SELECT', 'UPDATE', 'DELETE']\n", "probs_normal = [0.90, 0.08, 0.02]\n", "\n", "H_normal = entropia(probs_normal)\n", "print(\"=== Condiciones NORMALES ===\")\n", "for op, p in zip(ops_normal, probs_normal):\n", " print(f\" {op:<10} p = {p:.2f} I(x) = {informacion(p):.4f} bits\")\n", "print(f\"\\n H(X) normal = {H_normal:.4f} bits\")\n", "\n", "# ── Escenario ANÓMALO ────────────────────────────────────────────────────────\n", "probs_anomalo = [0.70, 0.05, 0.25] # DELETE sube a 25 %\n", "\n", "H_anomalo = entropia(probs_anomalo)\n", "print(f\"\\n=== Condiciones ANÓMALAS (posible ataque) ===\")\n", "for op, p in zip(ops_normal, probs_anomalo):\n", " print(f\" {op:<10} p = {p:.2f} I(x) = {informacion(p):.4f} bits\")\n", "print(f\"\\n H(X) anómalo = {H_anomalo:.4f} bits\")\n", "\n", "# ── Interpretación ───────────────────────────────────────────────────────────\n", "delta = H_anomalo - H_normal\n", "print(f\"\\n Incremento de entropía: Δ H = {delta:+.4f} bits\")\n", "print()\n", "print(\"Interpretación:\")\n", "print(\" → La entropía aumentó: el sistema se volvió más impredecible.\")\n", "print(\" → Un aumento en DELETE puede indicar eliminación masiva no autorizada,\")\n", "print(\" sabotaje interno, o actividad de ransomware (borra antes de cifrar).\")" ] }, { "cell_type": "code", "execution_count": 6, "id": "20474ccf", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 428 }, "id": "20474ccf", "outputId": "2b6de94c-b66e-42a3-ea79-eadfa3a4cbc6" }, "outputs": [ { "data": { "image/png": "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SJEi8vX11auvvqrU1NQMX/ubGYahSZMmqXTp0ipcuLCaNm2qAwcOZNg3Pj5eQ4YMUZkyZeTi4qIKFSpo+vTp2b7ccv78+eb3oGTJkhowYIDVpZXpl3Ht2bNH9evXN38GFyxYYDVeUlKSxo0bpwoVKsjFxUVlypTRsGHDlJSUZNEvq2NgxowZql+/vooVKyY3NzfVqlVLa9asyTD+5cuXq06dOubjsFGjRhZnQ2V07J45c0a9evWSn5+fXF1dVbNmTX3wwQcWfdKPpxkzZpi/O11cXPTwww9r9+7dVnFk57v5+vXrmjBhgipWrChXV1cVK1ZMDRo00KZNmzLct3RHjhxR6dKlrQpRkizOcLp69ar+85//qFKlSpo6dapV3/bt26t79+768ssv9dNPP2W5TQBA/sWZUQCQj5UtW1bPPfec3n33XY0YMSLLs6MmT56sMWPGqHPnzurdu7fOnj2ruXPnqlGjRvrll1/k5eWl0aNHKyEhQSdOnDCfBZR+6V1QUJBSU1P14Ycfqnv37reNLS4uTq1atVKHDh3UuXNnrVmzRsOHD1f16tXVunXrTNc7cOCAHn30UZUqVUojRoyQu7u7Pv74Y0VEROiTTz7RE088kem6ixcv1gsvvKD69etryJAh+vvvv/XYY4/Jx8dHZcqUyTLer776SikpKXr22Wdvu2/pcTZs2FAeHh4aNmyYnJyctHDhQjVp0kTffvut6tata9F/0KBB8vb21rhx4xQTE6M5c+Zo4MCB5jNzzpw5o5YtW8rX11cjRoyQl5eXYmJitHbt2mzFczsffvihevfurTp16qhv376SpPLly2e5zuHDh9WxY0f16tVL3bt31/vvv68ePXqoVq1aqlq1qqQbxY6mTZvKZDJp5MiRcnd313vvvZfvL/l79tlntXHjRm3atCnTibnfffddvfTSS+rYsaO5KLRv3z79+OOP6tatmzp06KA///xTH330kWbPnq3ixYtLknx9fc1jfPPNN/r44481cOBAFS9e3FzczUznzp0VHBysqVOn6ocfftBbb72luLi4DIuAt/Pvv/+qTp06io+PV9++fRUSEqKTJ09qzZo1unLlSqZn0yxdulQ9e/bUww8/rKlTp+r06dN688039f3335u/K9KlpqYqPDxcdevW1YwZM7R582bNnDlT5cuX14svvphlfGPHjtWkSZPUpk0btWnTRnv37lXLli3NhbJ0V65cUePGjXXy5Em98MILCgwM1M6dOzVy5EidOnUq0znu0o0fP14TJkxQWFiYXnzxRR06dEjvvPOOdu/ere+//97iMuG4uDi1adNGnTt3VteuXfXxxx/rxRdflLOzs7kwnJaWpscee0w7duxQ3759VblyZf3++++aPXu2/vzzT6t52TI7Bt5880099thjevrpp5WcnKxVq1apU6dOWr9+vdq2bWtef8KECRo/frzq16+v119/Xc7Ozvrxxx/1zTffqGXLlhnu89WrV9WkSRMdPnxYAwcOVNmyZRUVFaUePXooPj5egwcPtui/cuVKXbx4US+88IJMJpPeeOMNdejQQX///bf59cnud/P48eM1depU8/dNYmKifv75Z+3du1ctWrTI9H0KCgrS5s2b9c0336hZs2aZ9tuxY4fi4uI0ePDgTC91fe6557RkyRJ98cUXqlOnTqZjAQDyMQMAkO8sWbLEkGTs3r3bOHLkiFGoUCHjpZdeMi9v3LixUbVqVfPzmJgYw9HR0Zg8ebLFOL///rtRqFAhi/a2bdsaQUFBVtuMjY01fH19DUlGSEiI0a9fP2PlypVGfHy8Vd/GjRsbkoxly5aZ25KSkgx/f3/jySefNLcdPXrUkGQsWbLE3Na8eXOjevXqxrVr18xtaWlpRv369Y2KFSua27Zu3WpIMrZu3WoYhmEkJycbJUqUMEJDQ42kpCRzv0WLFhmSjMaNG2fwSv7Pyy+/bEgyfvnllyz7pYuIiDCcnZ2NI0eOmNv+/fdfo2jRokajRo3MbenvVVhYmJGWlmaxPUdHR/Prt27dOvN7mplb9zldRq/juHHjjFv/jLu7uxvdu3e3Gjc9xqNHj5rbgoKCDEnGd999Z247c+aM4eLiYrzyyivmtkGDBhkmk8nidTt//rzh4+NjNaYtde/e3XB3d890+S+//GJIMl5++WVzW+PGjS2Ok8cff9zic5SR//znP5nupyTDwcHBOHDgQIbLxo0bZ36e/n499thjFv369+9vSDJ+++03wzAyfq8zG/O5554zHBwcMjym0o/FzD5H1apVM65evWruv379ekOSMXbsWHNb9+7dDUnG66+/bjH2gw8+aNSqVctqmzc7c+aM4ezsbLRt29biczFq1ChDksVxOnHiRMPd3d34888/LcYYMWKE4ejoaBw/fvy2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rFgxc2HoVv369VOlSpW0bt06tW/fXsOHD7coXH3++efq2LGjqlSpok8//VTDhg3TggUL9Mwzz1iN9eKLL6patWpat26dHnnkET377LMaPny4vv76ay1YsECvv/66li1bppkzZ5rXOXfunHx8fDRr1ixt2LBBw4YN0wcffKB+/fpluY9z5841n3nzxRdfqEePHho/fryGDRuWy1ft3sil7kR0dLRVDmYymRQSEmLO0TLy0UcfqVGjRipdurS57YcffpAkXbp0SQ899JAKFSqkwMDATOevSk1NVXJysqKjozVs2DA99NBDatCgwW1jXrdundatW6d33nlH77zzjn788Ud16NAhy/7+/v7q2LGjOZdq27atjhw5oo4dO6pq1apat26dVq9erc6dOysuLu62MQA2ZQCwuXHjxhnu7u6GYRjGJ598YkgyfvzxR8MwDGPw4MFGUFCQue+bb75pmEwm448//jC3nT9/3nB3dzciIyPNbUFBQUaxYsWMS5cuWWyrcePGhru7u3H27Flz2yuvvGJIMt555x1z2++//25IMj799NMMY05NTTWuX79uPPDAA8bIkSMz3Je7Zf369Yazs7Mxbty4XK0fFBRkSMr0MWDAgCzXX7JkSZbrpz+OHj2a6RjLly83JBmnTp2yaN+9e7chyfj+++8zXXfv3r3GsGHDjPXr1xtbtmwxRo8ebbi4uBht27a16PfLL78Yrq6uxsGDBw3DuP17sXXrVkOSsXv37iz33zAMY/v27YaDg4Mxe/bsLPsdPXrUkGQ0bNjQon3MmDFG4cKFjQsXLhiG8b/XNP04TF8vKirKYr0BAwYYDz300G3jAwDcH/r372+4uroa8fHxhmEYxgsvvGAULlzYuHjxorlP+t+3oUOHmtvS0tKM4OBgo1evXua2Bx980KhXr57F+AsXLjQkGfv27bMYa9iwYeY+8fHxhqOjo1GmTBkjOTnZ3P7kk08aoaGhmcZ+/fp1Y8WKFUahQoWMy5cvm9slGf/5z38MwzCMlJQUo3jx4sZTTz1lse7IkSMNZ2dn49y5c7d/kTJwL+RSt7r5dbudChUqGC+88IJVe9u2bY0WLVpkuM5vv/1mSDIWLlxo0T516lRDkuHj42NMmjTJ+Oabb4zhw4cbJpPJWLBggdU4jz76qHn/ateubcTGxt423qCgIKNo0aLm49wwDGPLli2G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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ── Visualización: distribuciones y entropías comparadas ────────────────────\n", "fig, axes = plt.subplots(1, 2, figsize=(12, 4))\n", "colores_ops = ['#2E75B6', '#F4A261', '#E63946']\n", "\n", "for ax, probs, titulo, h in zip(\n", " axes,\n", " [probs_normal, probs_anomalo],\n", " [f'Normal → H = {H_normal:.4f} bits',\n", " f'Anómalo → H = {H_anomalo:.4f} bits'],\n", " [H_normal, H_anomalo]\n", "):\n", " barras = ax.bar(ops_normal, probs, color=colores_ops, edgecolor='white', linewidth=0.8)\n", " ax.set_ylim(0, 1.05)\n", " ax.set_ylabel('Probabilidad')\n", " ax.set_title(titulo, fontsize=11)\n", " for barra, p in zip(barras, probs):\n", " ax.text(barra.get_x() + barra.get_width()/2, p + 0.02,\n", " f'{p:.2f}', ha='center', fontsize=10)\n", "\n", "plt.suptitle('NetShield Consulting — Distribución de operaciones SQL', fontsize=12, y=1.02)\n", "plt.tight_layout()\n", "plt.show()\n" ] }, { "cell_type": "markdown", "id": "42cfa722", "metadata": { "id": "42cfa722" }, "source": [ "### 🧩 Ejercicio 2\n", "\n", "Considera un tercer escenario donde todas las operaciones son **equiprobables**:\n", "`SELECT = 1/3`, `UPDATE = 1/3`, `DELETE = 1/3`.\n", "\n", "**Tareas:**\n", "1. Calcula `H(X)` para este escenario usando la función `entropia()`.\n", "2. Compara el resultado con los dos escenarios anteriores.\n", "3. ¿Cuándo la entropía es máxima? Relaciona tu respuesta con la propiedad de **máximo de entropía**.\n", "4. ¿Puede la entropía superar `log2(3)` en este caso? ¿Por qué?\n", "\n", "```python\n", "# Tu código aquí\n", "probs_equip = [1/3, 1/3, 1/3]\n", "H_equip = entropia(probs_equip)\n", "H_max_teorico = math.log2(3)\n", "print(f\"H(X) equiprobable = {H_equip:.4f} bits\")\n", "print(f\"H_max teórico log2(3) = {H_max_teorico:.4f} bits\")\n", "```\n" ] }, { "cell_type": "markdown", "id": "14736e89", "metadata": { "id": "14736e89" }, "source": [ "---\n", "## 3. Propiedad: No Negatividad y Entropía Mínima\n", "\n", "### 🔍 Recordatorio teórico\n", "\n", "La entropía satisface $H(X) \\geq 0$ siempre. \n", "El mínimo absoluto es $H(X) = 0$, alcanzado cuando **un solo evento tiene probabilidad 1**.\n", "\n", "Esto equivale a **certeza absoluta**: el sistema es completamente predecible.\n", "\n", "$$H(X) = 0 \\iff \\exists\\, k : p(x_k) = 1$$\n" ] }, { "cell_type": "markdown", "id": "4308527c", "metadata": { "id": "4308527c" }, "source": [ "### 🏢 Escenario — FortiLog Systems\n", "\n", "Los auditores de **FortiLog Systems** revisan los registros de un firewall perimetral.\n", "Durante una ventana de 10 minutos, el log muestra **exclusivamente** el evento `ALLOW`\n", "(conexión permitida). No hay rechazos, bloqueos ni anomalías registradas.\n", "\n", "El equipo debate si esto refleja un sistema sano o una manipulación de logs.\n" ] }, { "cell_type": "code", "execution_count": 7, "id": "48dc466f", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "48dc466f", "outputId": "bd97cb3e-e445-42c3-8ab0-d8ffe5e02da6" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "=== FortiLog Systems — Firewall log (ventana 10 min) ===\n", " Eventos registrados: ['ALLOW']\n", " Probabilidad ALLOW: p = 1.00\n", " H(X) = -0.0000 bits\n", "\n", "Interpretación:\n", " → H = 0: el sistema es completamente determinista en este intervalo.\n", " → En un firewall real, siempre debería haber algo de variabilidad.\n", " → H = 0 puede indicar: logs incompletos, filtrado artificial\n", " o automatización excesiva que oculta eventos reales.\n", "\n", "=== Verificación: H(X) ≥ 0 para cualquier distribución ===\n", " [1.0] H = -0.0000 bits ✅\n", " [0.5, 0.5] H = 1.0000 bits ✅\n", " [0.9, 0.1] H = 0.4690 bits ✅\n", " [0.25, 0.25, 0.25, 0.25] H = 2.0000 bits ✅\n", " [0.99, 0.005, 0.005] H = 0.0908 bits ✅\n", "\n", " → En todos los casos H(X) ≥ 0. Propiedad verificada.\n" ] } ], "source": [ "# ── Caso: entropía cero (un solo evento posible) ────────────────────────────\n", "probs_firewall = [1.0] # Solo existe \"ALLOW\"\n", "H_fw = entropia(probs_firewall)\n", "\n", "print(\"=== FortiLog Systems — Firewall log (ventana 10 min) ===\")\n", "print(f\" Eventos registrados: ['ALLOW']\")\n", "print(f\" Probabilidad ALLOW: p = 1.00\")\n", "print(f\" H(X) = {H_fw:.4f} bits\")\n", "print()\n", "print(\"Interpretación:\")\n", "print(\" → H = 0: el sistema es completamente determinista en este intervalo.\")\n", "print(\" → En un firewall real, siempre debería haber algo de variabilidad.\")\n", "print(\" → H = 0 puede indicar: logs incompletos, filtrado artificial\")\n", "print(\" o automatización excesiva que oculta eventos reales.\")\n", "\n", "# ── Verificación formal: demostración de no negatividad ─────────────────────\n", "print(\"\\n=== Verificación: H(X) ≥ 0 para cualquier distribución ===\")\n", "distribuciones_prueba = [\n", " [1.0],\n", " [0.5, 0.5],\n", " [0.9, 0.1],\n", " [0.25, 0.25, 0.25, 0.25],\n", " [0.99, 0.005, 0.005],\n", "]\n", "for d in distribuciones_prueba:\n", " h = entropia(d)\n", " assert h >= 0, \"¡La entropía no puede ser negativa!\"\n", " print(f\" {str(d):<35} H = {h:.4f} bits {'✅' if h >= 0 else '❌'}\")\n", "\n", "print(\"\\n → En todos los casos H(X) ≥ 0. Propiedad verificada.\")\n" ] }, { "cell_type": "code", "execution_count": 8, "id": "f5cf920d", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 404 }, "id": "f5cf920d", "outputId": "ea8f82bb-b924-441c-8ba7-b48961657cf3" }, "outputs": [ { "data": { "image/png": "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UVUexRqW2bJlS1y+fLmkY6Fy6oezIbgdoSqu42JjgilduewBERERUWXlbG2CD956uWTaol/uIDZFpsOIKo9i1adftGgRRowYAYlEgh49esDR0THP3CpbW06erAzuP03G9ycfAwDEImBWv1owNeKyB0RERESVWTd/J1x8GItz92ORnJGDeXtvY/24xqzHUMqKVS1TLH7Z4VfQL6g8rXXHOXfFk5WjwNBvLqoXqhzasjomdWGvHREREREBSRnZGPvdFSSkZQMAPu1fG4NbuOk4qoqtWF0sP/zwA7Nuwjd/PFQndp6O5hjX0VPHERERERGRvrA2lWJm39qYuesmAGDVkQdo5eOAqramug2sAitWz11Fw567orv6JB7jv/8HAGAoEWHD+CbwdOJi5URERESk6avfg/HbtSgAQBNPW2x6ryk7ikpJsQqq1KhRA7du3cp32507d1CjRo03Cor0W0a2HAv23VbfH92+BhM7IiIiIsrXpC41UcXSCABw9UkC9l+J1HFEFVexkruwsDBkZWXluy0jIwORkfyFVWTrjj/C04RMAEDtqpYY1opjp4mIiIgof2ZGBvikTy31/VW/ByM6MVOHEVVcWid3MpkMCQkJiI+PB6AaypiQkKBxi46OxqFDh+Di4lJqAZNu3QpPxK4LYQAAqYEYM/rWhpjd6kRERET0Gk087dCjgSpHyMhWYOH+2+DssJKndUGVFStWYNGiRQBUFTK7detW4L4LFix448BI/2TLFViw7zZyP4fvtnGHu4OZboMiIiIionJhSlcvXH0Sj9iULFx+FI+DV59iQFNXXYdVoWid3PXr1w/u7u4QBAFjx47F3Llz4empWR1RKpWiVq1aqF+/fknHSXpg46knCHmRDgCo6WSOYa05HJOIiIiItGNubICPe/li5k+q2h0rfwtGS297OFmb6DiyikPr5M7f3x/+/v4AVD13PXv2hL29fakFRvrlflQyfjgbAgAwEIsws09tGIiLNWWTiIiIiCqpZl726F7fGX/cjEF6lhwL99/h4uYlqFhX56NGjWJiV4nkKJSYv+82FErVeMyhLavDy5nVMYmIiIio6KZ29YK9hRQAcPFhnHqZBHpzxUruMjMzMWfOHHh7e8PU1BQSiSTPjSqO7X+F4kF0KgDAzd4Uo9pzqQsiIiIiKh4LE0ME9HpZPfPL34KRkJZ/JX4qGq2H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W4bZs2fX66XkCxcuxNChQ8V1T506hU2bNmmNCQkJgYODA2bNmoX58+cjLy8PCQkJaNmypda4+fPno2vXroiKisLMmTPx888/Y8WKFXW+LNPR0REDBgzA/PnzUVxcjLi4OAQFBfFhKkRERo5n7oiIyGQNGTIESqUSZ8+exdChQ5GUlIRp06bho48+0hm7du1aXLx4EcOGDcOmTZuwePFizJw5U/z+f/7zH4SGhuJvf/sbpkyZgg4dOmDBggW1/tylS5dCEASMGjUKy5cvx6xZs7B06dJ6b8uaNWtw6NAhREVFISMjA5988onWmObNm0OpVKKgoABDhw5FcnIy1q5dC19fX61xgYGBUCqV4vampqZi69atdX7p+7BhwzBkyBDExsZi+vTp6Nq1q85ZRSIiMj4SQRCEpk6CiIiIjEOrVq0wePBgpKSkNHUqRET0mHjmjoiIiIiIyAywuSMiIiIiIjIDvCyTiIiIiIjIDPDMHRERERERkRlgc0dERERERGQG2NwRERERERGZATZ3REREREREZoDNHRERERERkRlgc0dERERERGQG2NwRERERERGZATZ3REREREREZoDNHRERERERkRn4P9zmaN4ZGqofAAAAAElFTkSuQmCC\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ── Visualización: entropía en función de p (caso binario) ─────────────────\n", "p_vals = np.linspace(0.001, 0.999, 500)\n", "h_bin = [-p * np.log2(p) - (1-p) * np.log2(1-p) for p in p_vals]\n", "\n", "fig, ax = plt.subplots()\n", "ax.plot(p_vals, h_bin, color='#2E75B6', linewidth=2)\n", "ax.fill_between(p_vals, h_bin, alpha=0.08, color='#2E75B6')\n", "\n", "# Marcadores especiales\n", "ax.scatter([0.001, 0.999], [0, 0], color='#E63946', s=80, zorder=5,\n", " label='H = 0 (certeza)')\n", "ax.scatter([0.5], [1.0], color='#1D6F3B', s=80, zorder=5,\n", " label='H = 1 bit (máximo)')\n", "ax.axhline(0, color='gray', linewidth=0.7, linestyle='--')\n", "\n", "ax.set_xlabel('Probabilidad p')\n", "ax.set_ylabel('Entropía H(X) [bits]')\n", "ax.set_title('Entropía binaria — No negatividad y mínimo')\n", "ax.legend()\n", "plt.tight_layout()\n", "plt.show()\n" ] }, { "cell_type": "markdown", "id": "a0e1f29f", "metadata": { "id": "a0e1f29f" }, "source": [ "### 🧩 Ejercicio 3\n", "\n", "Un sistema IDS (Intrusion Detection System) registra dos posibles estados:\n", "`NORMAL` con probabilidad `p` y `ALERTA` con probabilidad `1 - p`.\n", "\n", "**Tareas:**\n", "1. Calcula `H(X)` para `p = 0.99`, `p = 0.95`, `p = 0.80`, `p = 0.50`.\n", "2. ¿En qué valor de `p` la entropía es máxima? ¿Por qué tiene sentido intuitivamente?\n", "3. Si `p = 0.99`, ¿significa que el sistema IDS es seguro? ¿O podría ser preocupante?\n" ] }, { "cell_type": "code", "execution_count": 9, "id": "slFY3nGZKX0R", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "slFY3nGZKX0R", "outputId": "8898c5ad-454f-4c97-c251-110621e4bf0a" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "p = 0.99 → H(X) = 0.0808 bits\n", "p = 0.95 → H(X) = 0.2864 bits\n", "p = 0.80 → H(X) = 0.7219 bits\n", "p = 0.50 → H(X) = 1.0000 bits\n" ] } ], "source": [ "# Tu código aquí\n", "for p in [0.99, 0.95, 0.80, 0.50]:\n", " h = entropia([p, 1-p])\n", " print(f\"p = {p:.2f} → H(X) = {h:.4f} bits\")" ] }, { "cell_type": "markdown", "id": "269e6338", "metadata": { "id": "269e6338" }, "source": [ "---\n", "## 4. Propiedad: Máximo de Entropía\n", "\n", "### 🔍 Recordatorio teórico\n", "\n", "Para una variable con $n$ símbolos posibles, la entropía máxima es:\n", "\n", "$$H_{\\max} = \\log_2 n$$\n", "\n", "Esta cota se alcanza **solo cuando todos los eventos son equiprobables** ($p_i = 1/n$).\n", "\n", "Cada vez que se duplica el número de posibilidades, la entropía máxima aumenta **1 bit**.\n", "\n", "| $n$ | $H_{\\max}$ |\n", "|-----|-----------|\n", "| 2 | 1 bit |\n", "| 4 | 2 bits |\n", "| 8 | 3 bits |\n", "| 16 | 4 bits |\n" ] }, { "cell_type": "markdown", "id": "600790fd", "metadata": { "id": "600790fd" }, "source": [ "### 🏢 Escenario — PulseNet SOC\n", "\n", "El centro de operaciones de seguridad **PulseNet SOC** analiza el tráfico DNS saliente de su red\n", "corporativa. En una ventana de monitoreo, se identifican dominios únicos consultados con\n", "distintas frecuencias.\n", "\n", "El analista quiere determinar si la distribución del tráfico DNS es normal (diversificada) o\n", "artificialmente uniforme, lo que podría indicar técnicas de *domain fronting* o *DNS tunneling*.\n" ] }, { "cell_type": "code", "execution_count": 10, "id": "04462d7a", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "04462d7a", "outputId": "3080fe7b-25a6-4572-b8a2-99f70194159f" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Escenario H(X) [bits] H_max [bits] % del máximo\n", "----------------------------------------------------------------------------------------\n", "Tráfico normal (dominios populares dominan) 1.8309 2.3219 78.9%\n", "Distribución uniforme (posible tunneling) 2.3219 2.3219 100.0%\n", "\n", "Interpretación:\n", " → El tráfico normal tiene entropía menor al máximo teórico:\n", " hay dominios dominantes, lo cual es esperable.\n", " → Una distribución perfectamente uniforme alcanza H_max.\n", " En tráfico real, esto es inusual y merece investigación.\n" ] } ], "source": [ "# ── Configuración de escenarios DNS ─────────────────────────────────────────\n", "escenarios = {\n", " \"Tráfico normal (dominios populares dominan)\": {\n", " \"dominios\": [\"google.com\", \"microsoft.com\", \"aws.amazon.com\",\n", " \"updates.corp.local\", \"api.slack.com\"],\n", " \"probs\": [0.50, 0.25, 0.15, 0.07, 0.03],\n", " },\n", " \"Distribución uniforme (posible tunneling)\": {\n", " \"dominios\": [\"dom-a.net\", \"dom-b.net\", \"dom-c.net\",\n", " \"dom-d.net\", \"dom-e.net\"],\n", " \"probs\": [0.20, 0.20, 0.20, 0.20, 0.20],\n", " },\n", "}\n", "\n", "print(f\"{'Escenario':<45} {'H(X) [bits]':>12} {'H_max [bits]':>13} {'% del máximo':>13}\")\n", "print(\"-\" * 88)\n", "\n", "resultados = {}\n", "for nombre, datos in escenarios.items():\n", " n = len(datos[\"probs\"])\n", " h = entropia(datos[\"probs\"])\n", " h_max = math.log2(n)\n", " pct = 100 * h / h_max\n", " resultados[nombre] = (h, h_max)\n", " print(f\"{nombre:<45} {h:>12.4f} {h_max:>13.4f} {pct:>12.1f}%\")\n", "\n", "print()\n", "print(\"Interpretación:\")\n", "print(\" → El tráfico normal tiene entropía menor al máximo teórico:\")\n", "print(\" hay dominios dominantes, lo cual es esperable.\")\n", "print(\" → Una distribución perfectamente uniforme alcanza H_max.\")\n", "print(\" En tráfico real, esto es inusual y merece investigación.\")\n" ] }, { "cell_type": "code", "execution_count": 11, "id": "b7a633f5", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 428 }, "id": "b7a633f5", "outputId": "6b2aab8e-d8fa-4822-b0b7-26995237c7dd" }, "outputs": [ { "data": { "image/png": "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ALLpu+++U8+ePRUfH6+KFSvqv//9b4ZDAgEFFZcVAwAAAAAAADaKG5IAAAAAAAAANoriIAAAAAAAAGCjKA4CAB54YWFhMplMioyMTHP+jh07VLJkyfvbKQAAAOS5hQsXZnj35smTJ3NTFyATFAeBQqJx48aaMWNGqukmk0kHDhzI9fXNnDlTjz76qJycnBQSEpJp/J9//qlmzZrJx8dH/v7+eumll3Tr1i3L/E6dOikgIECenp4qW7asJk6caLX8+fPn1aZNG7m5uSkoKEhz5861mr9582bVqlVLHh4eqly5sr799ttM+7R06VJ16NAhzXllypTR2rVrraZlVoB60H3xxReqU6eOvLy8FBAQoD59+mS4rQsWLFDFihXl5eWlokWLqmPHjjp9+rRl/rBhw1SxYkV5eHiobNmymjJlitXymR1Dv/76q+rXry9PT0899NBDWrRoUY63rUGDBjp79qzlcXqvFwAAHkT3Mw+MjY1Vv379VLZsWXl4eCg4OFjz58/PcJmM8ryjR4/qmWeekb+/v7y9vVWvXj399NNPlvlxcXHq1KmTypQpI5PJlCo/k6QZM2booYcekru7u5o2bapjx45luh39+vXTv//971TT08v3MitAPegyy9vuNmjQIJUqVUqenp4qUaKEXn/9dcXFxUmSLl26pBdeeEElS5aUp6enatasqf/+979Wy7/00kuqWLGizGZzmsfu8uXLValSJbm7u+uxxx7T3r17c7xto0aN0vLlyy2P8+r7EfAgozgIIEcCAwP19ttvq1+/flmK79atmypWrKiLFy/q0KFDOnjwoN59913L/LFjxyosLEzR0dH64YcftGzZMi1ZssQyv2vXrvL399elS5e0cuVKDRs2TD/88IMk6cSJE3rmmWc0YcIERUVF6f3339ezzz6rEydOZNindevW6emnn87B1hdOt27d0vvvv6+LFy/qjz/+UHh4uAYMGJBufNOmTfXTTz8pKipKZ8+eVbly5dS7d2/LfGdnZ61Zs0aRkZHauHGj5syZo88++8wyP6NjKDIyUm3atFH37t0VERGh5cuXa9CgQdq5c2fubjQAAMiWhIQEBQQEaMuWLYqOjtbChQv15ptvatOmTekuk1GeFxkZqdatW+vQoUO6evWqevXqpTZt2ujKlSuW5evXr6/FixeneRXA8uXLNX36dG3YsEERERF68skn1b59eyUmJqbbH8MwtH79evLAFDLL2+42YMAAHTlyRNHR0Tp48KAOHjyo999/X5J048YN1axZUz///LMiIyM1YcIEde3aVX/++adl+UceeUSzZs1SnTp1UrX9008/qX///lq4cKGioqLUt29ftWnTRlFRUbm/4QAkURwEkEMdO3ZUSEiIihYtmqX4EydOqHv37nJ0dJSfn5+efvppHTp0yDK/WrVqcnJyknTn1zyz2ax//vlHknT8+HHt3LlTU6ZMkZubm+rWrasXXnjB8iv1t99+q1q1aqldu3Yym81q166d6tSpk+GZZvHx8dq0aZPatWuX012QruRflseMGaOiRYvK399fK1as0E8//aSqVavKy8tLffr0UVJSkqQ7CVSHDh1UrFgxeXl5qWHDhjp48KClveeee07du3e3PJ42bZqqVKmi27dv52q/X3nlFTVu3FjOzs7y9fVV//79MyzGlS5d2vL8G4Zh9ZxJ0rvvvqsqVarIzs5OwcHB6tixo1V7GR1Du3btkpOTk/r37y87OzvVrVtXHTt21Oeff57hNqxcuVJlypRRkSJFNGDAAMsv2Nu3b5e3t7ck6c0339SOHTs0YsQIubu7q3Xr1pKkDz/8UEFBQfLw8FCZMmUyXRcAALbIzc1NEyZMULly5WQymfT444+rSZMmGeYMGeV5derU0UsvvSQ/Pz/Z2dmpX79+srOz0++//y5JcnR01Ouvv64GDRrIzs4uVduhoaH617/+peDgYDk4OGjs2LE6fvy4duzYkW5/9u3bJx8fH5UrV+5edkWaevXqpT59+qhTp05yd3dXlSpVdPjwYc2ZM0clS5aUn5+fZs2aZYnfv3+/6tevL19fX/n5+alr1666evWqJCk6OlrlypWzyknat2+vf/3rX7ne78zytrtVqlRJbm5uklLngQ899JCGDh2qkiVLymw2q3379qpYsaJ+/vlny/KvvvqqmjVrJmdn51Rtf/311+rQoYPq1q0rOzs7vfzyy3J3d1doaGiG2zBq1CgVKVJEQUFBVvt43LhxlqtUkouRTz75pNzd3TV58mTFxsaqd+/eKlq0qLy8vFS1atV7OlMReBBRHARs2M6dO+Xt7Z3uX0ZnjWXX0KFDtWjRIt2+fVsXLlxQaGio2rdvbxUzYMAAubq6KigoSDdu3FCvXr0kSb///rsCAgJUvHhxS2yN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7969OnDggMqWLauRI0fqvffe05w5c6xiVq1apTJlymjFihWqUaOGDh8+rGHDhunXX39ViRIlNGnSJPXt21cbN26UdOdyi/3796tixYqWNtzd3bVnzx59//336tChg2bOnKl9+/Zp5cqVGjZsmPbu3asTJ05o3Lhx+u677+Tp6aljx46pQYMGCgsLk5OTk1Wfpk2blm4iPHbsWD3zzDNW065evar4+Hj5+/tbppUpU0anT5/OcP/cvHlTn3/+uaZMmSJJOn36tEqXLm2Z7+HhIU9PT50/f14PPfRQhm0BAIDCgTyQPFDK2zywQJw5eOTIEbVo0UJubm7y9/fX8OHDFRcXl/mCks6dO6eePXvKz89PLi4uqlSpUrpPGgAAyLm+fftKkh566CE1bNgw3bFTMvLEE0+obNmylv+PHz+e6TLbtm1Tq1atVKJECUnSgAEDtHXrVsulI08++aRVQijJMm7No48+qps3b6pLly6SpDp16uiff/6RJH377bc6duyYGjZsqBo1aqhTp04ym81pJm7Dhg3TgQMH0vy7OyHMqbi4OD3//PNq2bJlrrVZ0JEDAgDwYCAPLNx5YL6fORgREaGmTZuqfPnyWrNmjc6dO6chQ4bo1q1bmjlzZobLhoeH64knnlDFihX12WefydPTU3/88Ydic3iqLAAABVXx779Od57JbP1bX7H1X2UQm3t3vkvrzmj29vZW473cfdmDs7Oz5X87OzslJCTc83rd3d1TxSSvx87OLtXj5HUahqEWLVpo2bJlma4zu78YFylSRPb29rpw4YLlV+OwsDAFBQWl2UZ8fLyef/55BQQE6KOPPrJMDwoK0qlTpyyPr1+/rqioKAUGBmba54KOHBAAgKwhD0x/veSBuSPfi4OzZ89WdHS0QkND5evrK0lKSEjQgAEDNGrUqAw3evjw4SpVqpS+/fZby5PerFmz+9JvAADuJ7OLc+ZBOYjNjgULFmjcuHEKCwvTjh07NGPGjFQxDz/8sNavX6/ExETFxsZq9erVqX7Nza4mTZpo0qRJOn/+vAIDAzV79mw1a9bM8tmfU0899ZTGjx+v33//3TLWyy+//KI6deqkih02bJiGDRuWrfafe+45zZ49W+PGjdPevXt17tw5NWrUKFVcQkKCunTpIl9fX3322WdWSW/t2rUVHx+vbdu2qUmTJpozZ47at29vlVw/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8qGhoXrllVc0YcKEVOPWAAAAoGAiBwQAACgY8r042Lp1a23ZskWRkZGWaStXrpTZbFbLli0zXHb79u3q2rWr+vXrp3feeSePewoAAIDcQg4IAABQMOR7cbB///7y8PBQSEiINm3apAULFmjYsGHq37+/AgMDLXHNmjXTww8/bHn8119/KSQkROXLl1ePHj30888/W/6OH0//LroAAADIf+SAAAAABUOBGHPw+++/16BBgxQSEiIPDw/17dtXkyZZ33I7MTFRCQn/G8hyz549ioqKUlRUlOrVq2cV27NnTy1cuPB+dB8AAAA5QA4IAABQMOR7cVCSKlWqpC1btmQYs337dqvHvXr1Uq9evfKuUwAAAMhT5IAAAAD5L98vKwYAAAAAAACQPygOAgAAAAAAADaK4iAAAAAAAABgoygOAgAAAAAAADaK4iAAAAAAAABgoygOAgAAAAAAADaK4iAAAAAAAABgoygOAgAAAAAAADaK4iAAAAAAAABgoygOAgAAAAAAADaK4iAAAAAAAABgoygOAgAAAAAAADbKPr87AAC54WZsghKTjPzuRqFjZzbJzYmPCgAAAAAorPjGB6BQSEwyNHD+PsXEJeZ3VwoNZ0c7zez9aH53AwAAAACQhygOAig0YuISFROflN/dAAAAAADggcGYgwAAAAAAAICNojgIAAAAAAAA2CiKgwAAAAAAAICNojgIAAAAAAAA2CiKgwAAAAAAAICNojgIAAAAAAAA2CiKgwAAAAAAAICNojgIAAAAAAAA2CiKgwAAAAAAAICNojgIAAAAAAAA2CiKgwAAAAAAAICNKhDFwSNHjqhFixZyc3OTv7+/hg8frri4uEyXmzVrltq1ayc/Pz+ZTCatWrXqPvQWAAAAuYEcEAAAIP/le3EwIiJCTZs2VVxcnNasWaPJkyfrs88+05AhQzJddtGiRbpy5YratGlzH3oKAACA3EIOCAAAUDDY53cHZs+erejoaIWGhsrX11eSlJCQoAEDBmjUqFEKDAxMd9ldu3bJbDYrLCxMixYtul9dBgAAwD0iBwQAACgY8v3MwY0bN6p58+aWpFCSOnfurKSkJG3atCnDZc3mfO8+AAAAcoAcEAAAoGDI98zqyJEjCg4Otprm7e2tgIAAHTlyJJ96BQAAgLxEDggAAFAw5PtlxREREfL29k413cfHR9euXcv19cXG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iYhoyZIl9PnnnxMRUUFBAfXq1Yu2bt1KREROTk60aNEiIiK6cOECTZ06lUJDQ4mIqLKykvLz82n16tX0+PFjIiISi8UUGxtL+fn5r72eTcX169dpxYoVtHjxYiosLKSwsDAaNWoUPXr0iNLT02natGk0YcIEIiL6+OOPydvbm4iIKioqaO/eveTq6iq81/3794U29+zZM9q+fTt99tlnFBkZKfy9cHv6axKJhCQSSb3Hnz59Snv27KGZM2eSj48P5eTkkEQioVWrVpGGhgZVVFQIz3V0dKSDBw/Ss2fPiIjoxx9/pGnTplFOTg4R1cRPFitra2vauHFjnc9hf9/169fpu+++E77j2lJTU+vEZ+/evfTee+9RamqqcN7Ly8ujBQsWkIGBAenr67/0/EVElJGRQYsXLyYrKyuytbUlb29vys3N/e8rxdhrJjsnZGRkEBG98NhHRJSenk7Lli2j9evXk6GhIdna2tLo0aPp8uXLRFRzjLO0tCQiopycHNq5cye5uLjQlStXaNOmTTR27Fjhs+zt7al///4UExNDREQrV66k8+fPv85qvjVed7wiIyMpJSWFunTpQnv27CGimuPllClThGPrtm3b6Ndff32t9XybvM6YOTs7U3R0tHBNFRsbS0REERERFBkZSURE69evp23bthER1TkPsvoaIlY7duwgJycnSk5OJiKiVatWUbNmzei7774jIqJ9+/Zx+3pFDdW2HB0dhevqy5cvk4+PD8XFxRERn7/eRJwc/If+LEmQmppa5+fp06fThx9+SPfv36dFixZRr1696ObNm1ReXk5Dhgyh4OBgSklJIXd3dzp69Gidz4iOjiYiot9++42GDx9e53OrqqpeWjZOYvzhZcnA2if5U6dOkY2NDS1btowCAgIoLy+PiGoSgNu3bxeet337dhoyZAgR1XT4evXqRUREubm5tHbtWurbty+5uLjQrl27qLq6mg4cOEDl5eVExIml/0ppaSlt2LCBDA0NydXVlXr27EnW1tZEVNOJGz16tPDcBw8eULNmzYioJl5jx46lyspKIqpJ6JqZmdG9e/eIiGjs2LEUFRXVsJV5iz19+pTOnz8v/P1v2LCBJkyYQAcOHKBly5aRhYUFPXnyhCIiImjAgAH04MED4bULFy6kKVOmUFpaGhERrVixgjw9PYmI6N69e7R06VI6e/YsEdUk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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ── Visualización: comparación de distribuciones DNS ────────────────────────\n", "fig, axes = plt.subplots(1, 2, figsize=(13, 4))\n", "\n", "for ax, (nombre, datos) in zip(\n", " axes,\n", " escenarios.items()\n", "):\n", " n = len(datos[\"probs\"])\n", " h = entropia(datos[\"probs\"])\n", " h_max = math.log2(n)\n", "\n", " barras = ax.bar(\n", " range(n),\n", " datos[\"probs\"],\n", " color='#2E75B6',\n", " edgecolor='white',\n", " linewidth=0.8,\n", " alpha=0.85\n", " )\n", " ax.axhline(1 / n, color='#E63946', linestyle='--', linewidth=1.5,\n", " label=f'p uniforme = {1/n:.2f}')\n", " ax.set_xticks(range(n))\n", " ax.set_xticklabels(datos[\"dominios\"], rotation=15, ha='right', fontsize=8)\n", " ax.set_ylim(0, 0.65)\n", " ax.set_ylabel('Probabilidad')\n", " ax.set_title(f'{nombre}\\nH = {h:.4f} / H_max = {h_max:.4f} bits', fontsize=9)\n", " ax.legend(fontsize=8)\n", "\n", "plt.suptitle('PulseNet SOC — Análisis de entropía en tráfico DNS', fontsize=11, y=1.02)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "6dfa7343", "metadata": { "id": "6dfa7343" }, "source": [ "### 🧩 Ejercicio 4\n", "\n", "Un sistema de monitoreo registra el **puerto destino** de las conexiones salientes.\n", "Se observan los siguientes puertos con sus frecuencias relativas:\n", "\n", "| Puerto | Descripción | Probabilidad |\n", "|--------|-------------------|-------------|\n", "| 443 | HTTPS | 0.60 |\n", "| 80 | HTTP | 0.20 |\n", "| 22 | SSH | 0.10 |\n", "| 8080 | HTTP alternativo | 0.07 |\n", "| 4444 | Puerto inusual | 0.03 |\n", "\n", "**Tareas:**\n", "1. Calcula `H(X)` para esta distribución.\n", "2. Calcula `H_max` para 5 eventos.\n", "3. ¿Cuánto se aleja la distribución real del máximo teórico?\n", "4. Si el puerto `4444` subiera a `0.40` (redistribuyendo el resto proporcionalmente),\n", " ¿esperarías que la entropía suba o baje? Verifica tu intuición con código.\n" ] }, { "cell_type": "code", "execution_count": 11, "id": "qHU_dw2RCtZH", "metadata": { "id": "qHU_dw2RCtZH" }, "outputs": [], "source": [] }, { "cell_type": "markdown", "id": "5f284fa1", "metadata": { "id": "5f284fa1" }, "source": [ "---\n", "## 5. Propiedad: Aditividad e Información Mutua\n", "\n", "### 🔍 Recordatorio teórico\n", "\n", "Para dos fuentes **independientes** X e Y, la entropía conjunta es la suma de las individuales:\n", "\n", "$$H(X, Y) = H(X) + H(Y) \\quad \\text{(si X e Y son independientes)}$$\n", "\n", "Cuando existe **dependencia** entre variables, la entropía conjunta se reduce. La información\n", "compartida entre X e Y se cuantifica mediante la **Información Mutua**:\n", "\n", "$$I(X; Y) = H(X) + H(Y) - H(X, Y)$$\n", "\n", "Si $I(X; Y) > 0$: conocer una variable **reduce** la incertidumbre sobre la otra.\n" ] }, { "cell_type": "markdown", "id": "990b9538", "metadata": { "id": "990b9538" }, "source": [ "### 🏢 Escenario — VaultSec Bank\n", "\n", "El equipo de seguridad de **VaultSec Bank** analiza los eventos de autenticación registrados\n", "en su plataforma de banca en línea.\n", "\n", "Quieren determinar si el **tipo de evento** (LOGIN_OK vs LOGIN_FAIL) y la **dirección IP de origen**\n", "(IP interna vs IP externa) son variables estadísticamente independientes, o si existe una\n", "correlación que podría indicar un ataque dirigido desde el exterior.\n" ] }, { "cell_type": "code", "execution_count": 12, "id": "8f900179", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "8f900179", "outputId": "e7408f69-6885-411d-ab1a-ec5dadfee892" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "=== VaultSec Bank — Análisis de autenticación ===\n", "\n", " H(X) — tipo de evento = 0.7219 bits\n", " H(Y) — origen IP = 0.9928 bits\n", " H(X,Y) — conjunta = 1.6477 bits\n", " H(X)+H(Y) si fueran ind. = 1.7147 bits\n", " I(X;Y) — info. mutua = 0.0670 bits\n", "\n", "Interpretación:\n", " → I(X;Y) = 0.0670 > 0: las variables NO son independientes.\n", " → Conocer el origen IP reduce la incertidumbre sobre el tipo de evento.\n", " → Los LOGIN_FAIL están más concentrados en IP_EXTERNA (15 % vs 5 %).\n", " → Esto podría indicar intentos de acceso desde el exterior.\n" ] } ], "source": [ "# ── Entropía conjunta a partir de una tabla de contingencia ─────────────────\n", "#\n", "# Tabla de probabilidades conjuntas p(x, y):\n", "#\n", "# IP_INTERNA IP_EXTERNA\n", "# LOGIN_OK 0.50 0.30\n", "# LOGIN_FAIL 0.05 0.15\n", "#\n", "# Caso normal: las fallas se distribuyen entre IPs internas y externas.\n", "\n", "# Distribución conjunta\n", "p_joint = {\n", " ('LOGIN_OK', 'IP_INTERNA'): 0.50,\n", " ('LOGIN_OK', 'IP_EXTERNA'): 0.30,\n", " ('LOGIN_FAIL', 'IP_INTERNA'): 0.05,\n", " ('LOGIN_FAIL', 'IP_EXTERNA'): 0.15,\n", "}\n", "\n", "# ── Entropía conjunta H(X, Y) ────────────────────────────────────────────────\n", "def entropia_conjunta(p_joint_dict):\n", " \"\"\"H(X,Y) = -sum p(x,y) * log2(p(x,y))\"\"\"\n", " return -sum(p * math.log2(p) for p in p_joint_dict.values() if p > 0)\n", "\n", "H_XY = entropia_conjunta(p_joint)\n", "\n", "# ── Marginales p(x) y p(y) ──────────────────────────────────────────────────\n", "eventos_x = ['LOGIN_OK', 'LOGIN_FAIL']\n", "eventos_y = ['IP_INTERNA', 'IP_EXTERNA']\n", "\n", "p_x = {ex: sum(v for (kx, ky), v in p_joint.items() if kx == ex) for ex in eventos_x}\n", "p_y = {ey: sum(v for (kx, ky), v in p_joint.items() if ky == ey) for ey in eventos_y}\n", "\n", "H_X = entropia(list(p_x.values()))\n", "H_Y = entropia(list(p_y.values()))\n", "\n", "# ── Información mutua ────────────────────────────────────────────────────────\n", "I_XY = H_X + H_Y - H_XY\n", "\n", "print(\"=== VaultSec Bank — Análisis de autenticación ===\\n\")\n", "print(f\" H(X) — tipo de evento = {H_X:.4f} bits\")\n", "print(f\" H(Y) — origen IP = {H_Y:.4f} bits\")\n", "print(f\" H(X,Y) — conjunta = {H_XY:.4f} bits\")\n", "print(f\" H(X)+H(Y) si fueran ind. = {H_X + H_Y:.4f} bits\")\n", "print(f\" I(X;Y) — info. mutua = {I_XY:.4f} bits\")\n", "print()\n", "print(\"Interpretación:\")\n", "if I_XY > 0.01:\n", " print(f\" → I(X;Y) = {I_XY:.4f} > 0: las variables NO son independientes.\")\n", " print(\" → Conocer el origen IP reduce la incertidumbre sobre el tipo de evento.\")\n", " print(\" → Los LOGIN_FAIL están más concentrados en IP_EXTERNA (15 % vs 5 %).\")\n", " print(\" → Esto podría indicar intentos de acceso desde el exterior.\")\n", "else:\n", " print(f\" → I(X;Y) ≈ 0: las variables son prácticamente independientes.\")" ] }, { "cell_type": "code", "execution_count": 13, "id": "f28f9b6d", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "f28f9b6d", "outputId": "b8287548-336f-463a-b393-febdef3943ff" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "=== Escenario de ATAQUE (fallas solo desde exterior) ===\n", " H(X) = 0.7219 bits\n", " H(Y) = 0.9928 bits\n", " H(X,Y) = 1.4388 bits\n", " I(X;Y) = 0.2759 bits ← mayor que el caso normal\n", "\n", "Comparación:\n", " I(X;Y) normal = 0.0670 bits\n", " I(X;Y) ataque = 0.2759 bits\n", "\n", " → A mayor información mutua, más fuerte la correlación tipo-evento / IP.\n", " → Un sistema de detección puede usar I(X;Y) como señal de alerta.\n" ] } ], "source": [ "# ── Escenario de ATAQUE: todas las fallas provienen del exterior ────────────\n", "p_joint_ataque = {\n", " ('LOGIN_OK', 'IP_INTERNA'): 0.55,\n", " ('LOGIN_OK', 'IP_EXTERNA'): 0.25,\n", " ('LOGIN_FAIL', 'IP_INTERNA'): 0.00,\n", " ('LOGIN_FAIL', 'IP_EXTERNA'): 0.20, # 100 % de las fallas → exterior\n", "}\n", "\n", "H_XY_ataque = entropia_conjunta(p_joint_ataque)\n", "p_x_ataque = {ex: sum(v for (kx, ky), v in p_joint_ataque.items() if kx == ex)\n", " for ex in eventos_x}\n", "p_y_ataque = {ey: sum(v for (kx, ky), v in p_joint_ataque.items() if ky == ey)\n", " for ey in eventos_y}\n", "H_X_ataque = entropia(list(p_x_ataque.values()))\n", "H_Y_ataque = entropia(list(p_y_ataque.values()))\n", "I_XY_ataque = H_X_ataque + H_Y_ataque - H_XY_ataque\n", "\n", "print(\"=== Escenario de ATAQUE (fallas solo desde exterior) ===\")\n", "print(f\" H(X) = {H_X_ataque:.4f} bits\")\n", "print(f\" H(Y) = {H_Y_ataque:.4f} bits\")\n", "print(f\" H(X,Y) = {H_XY_ataque:.4f} bits\")\n", "print(f\" I(X;Y) = {I_XY_ataque:.4f} bits ← mayor que el caso normal\")\n", "print()\n", "print(\"Comparación:\")\n", "print(f\" I(X;Y) normal = {I_XY:.4f} bits\")\n", "print(f\" I(X;Y) ataque = {I_XY_ataque:.4f} bits\")\n", "print()\n", "print(\" → A mayor información mutua, más fuerte la correlación tipo-evento / IP.\")\n", "print(\" → Un sistema de detección puede usar I(X;Y) como señal de alerta.\")" ] }, { "cell_type": "code", "execution_count": 14, "id": "0dbacb12", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 428 }, "id": "0dbacb12", "outputId": "cd82f173-310b-4149-8be4-b0abaa343005" }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# ── Visualización: comparación de distribuciones normal vs ataque ────────────\n", "# IMPORTANT: Ensure cell 'f28f9b6d' is executed before this cell to define p_joint_ataque and I_XY_ataque.\n", "fig, axes = plt.subplots(1, 2, figsize=(12, 4))\n", "\n", "for ax, (p_dict, titulo, i_val) in zip(\n", " axes,\n", " [\n", " (p_joint, f'Caso normal\\nI(X;Y) = {I_XY:.4f} bits', I_XY),\n", " (p_joint_ataque, f'Caso ataque\\nI(X;Y) = {I_XY_ataque:.4f} bits', I_XY_ataque),\n", " ]\n", "):\n", " probs_matrix = np.array([\n", " [p_dict.get(('LOGIN_OK', 'IP_INTERNA'), 0),\n", " p_dict.get(('LOGIN_OK', 'IP_EXTERNA'), 0)],\n", " [p_dict.get(('LOGIN_FAIL', 'IP_INTERNA'), 0),\n", " p_dict.get(('LOGIN_FAIL', 'IP_EXTERNA'), 0)],\n", " ])\n", "\n", " im = ax.imshow(probs_matrix, cmap='Blues', vmin=0, vmax=0.55, aspect='auto')\n", " ax.set_xticks([0, 1])\n", " ax.set_xticklabels(['IP Interna', 'IP Externa'])\n", " ax.set_yticks([0, 1])\n", " ax.set_yticklabels(['LOGIN_OK', 'LOGIN_FAIL'])\n", " ax.set_title(titulo)\n", "\n", " for i in range(2):\n", " for j in range(2):\n", " ax.text(j, i, f'{probs_matrix[i, j]:.2f}',\n", " ha='center', va='center', fontsize=12,\n", " color='white' if probs_matrix[i, j] > 0.3 else 'black')\n", "\n", "plt.suptitle('VaultSec Bank — Distribución conjunta de autenticación', fontsize=11, y=1.02)\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "id": "270620f3", "metadata": { "id": "270620f3" }, "source": [ "### 🧩 Ejercicio 5\n", "\n", "Considera un sistema de control de acceso físico que registra:\n", "- **Variable X**: rol del empleado (`ADMIN`, `OPERADOR`, `VISITANTE`)\n", "- **Variable Y**: zona de acceso (`SALA_SERVIDORES`, `OFICINA`, `LOBBY`)\n", "\n", "Distribución conjunta observada:\n", "\n", "| | SALA_SERVIDORES | OFICINA | LOBBY |\n", "|-------------|:-----------:|:-------:|:-----:|\n", "| ADMIN | 0.20 | 0.10 | 0.05 |\n", "| OPERADOR | 0.05 | 0.30 | 0.10 |\n", "| VISITANTE | 0.00 | 0.05 | 0.15 |\n", "\n", "**Tareas:**\n", "1. Calcula `H(X)`, `H(Y)` y `H(X,Y)`.\n", "2. Calcula `I(X;Y)`.\n", "3. ¿Existe correlación entre el rol y la zona accedida? ¿Qué indica esto en términos de seguridad?\n", "4. Si un visitante accede a `SALA_SERVIDORES`, ¿cómo cambia la información mutua?\n" ] }, { "cell_type": "code", "execution_count": 15, "id": "F62CPxWFKkKW", "metadata": { "colab": { "base_uri": "https://localhost:8080/" }, "id": "F62CPxWFKkKW", "outputId": "130ed2fd-d108-46eb-e6ea-b58460fd34a7" }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "H(X) = 1.5129 bits\n", "H(Y) = 1.5395 bits\n", "H(X,Y) = 2.7087 bits\n", "I(X;Y) = 0.3437 bits\n", "\n", "Interpretación:\n", " → I(X;Y) = 0.3437 > 0: Existe una correlación significativa entre el rol del empleado y la zona de acceso.\n", " → Esto indica que el conocimiento de una variable reduce la incertidumbre sobre la otra, lo cual es esperable en un sistema de control de acceso bien diseñado. Los diferentes roles tienen permisos y zonas de acceso específicas.\n", " → En términos de seguridad, esto es positivo, ya que muestra que las políticas de acceso están siendo seguidas y hay una estructura clara en los permisos.\n", "\n", "Análisis de escenario: Visitante accede a SALA_SERVIDORES\n", " I(X;Y) original = 0.3437 bits\n", " I(X;Y) con anomalía = 0.3123 bits\n", " → Un visitante accediendo a SALA_SERVIDORES es un evento que aumenta la información mutua (I(X;Y) se vuelve más grande). Esto ocurre porque se crea una correlación más fuerte entre 'VISITANTE' y 'SALA_SERVIDORES' que antes no existía (probabilidad 0). El sistema se vuelve más 'sorprendente' o 'informativo' cuando ocurre algo inesperado en una celda de baja probabilidad. Este aumento de I(X;Y) puede ser un indicador de un incidente de seguridad.\n" ] } ], "source": [ "p_joint_ejercicio5 = {\n", " ('ADMIN', 'SALA_SERVIDORES'): 0.20,\n", " ('ADMIN', 'OFICINA'): 0.10,\n", " ('ADMIN', 'LOBBY'): 0.05,\n", " ('OPERADOR', 'SALA_SERVIDORES'): 0.05,\n", " ('OPERADOR', 'OFICINA'): 0.30,\n", " ('OPERADOR', 'LOBBY'): 0.10,\n", " ('VISITANTE', 'SALA_SERVIDORES'): 0.00,\n", " ('VISITANTE', 'OFICINA'): 0.05,\n", " ('VISITANTE', 'LOBBY'): 0.15,\n", "}\n", "\n", "# 1. Calcula H(X), H(Y) y H(X,Y)\n", "# Marginal probabilities for X (rol del empleado)\n", "p_admin = p_joint_ejercicio5[('ADMIN', 'SALA_SERVIDORES')] + p_joint_ejercicio5[('ADMIN', 'OFICINA')] + p_joint_ejercicio5[('ADMIN', 'LOBBY')]\n", "p_operador = p_joint_ejercicio5[('OPERADOR', 'SALA_SERVIDORES')] + p_joint_ejercicio5[('OPERADOR', 'OFICINA')] + p_joint_ejercicio5[('OPERADOR', 'LOBBY')]\n", "p_visitante = p_joint_ejercicio5[('VISITANTE', 'SALA_SERVIDORES')] + p_joint_ejercicio5[('VISITANTE', 'OFICINA')] + p_joint_ejercicio5[('VISITANTE', 'LOBBY')]\n", "H_X = entropia([p_admin, p_operador, p_visitante])\n", "\n", "# Marginal probabilities for Y (zona de acceso)\n", "p_sala_servidores = p_joint_ejercicio5[('ADMIN', 'SALA_SERVIDORES')] + p_joint_ejercicio5[('OPERADOR', 'SALA_SERVIDORES')] + p_joint_ejercicio5[('VISITANTE', 'SALA_SERVIDORES')]\n", "p_oficina = p_joint_ejercicio5[('ADMIN', 'OFICINA')] + p_joint_ejercicio5[('OPERADOR', 'OFICINA')] + p_joint_ejercicio5[('VISITANTE', 'OFICINA')]\n", "p_lobby = p_joint_ejercicio5[('ADMIN', 'LOBBY')] + p_joint_ejercicio5[('OPERADOR', 'LOBBY')] + p_joint_ejercicio5[('VISITANTE', 'LOBBY')]\n", "H_Y = entropia([p_sala_servidores, p_oficina, p_lobby])\n", "\n", "H_XY = entropia_conjunta(p_joint_ejercicio5)\n", "\n", "print(f\"H(X) = {H_X:.4f} bits\")\n", "print(f\"H(Y) = {H_Y:.4f} bits\")\n", "print(f\"H(X,Y) = {H_XY:.4f} bits\")\n", "\n", "# 2. Calcula I(X;Y).\n", "I_XY = H_X + H_Y - H_XY\n", "print(f\"I(X;Y) = {I_XY:.4f} bits\")\n", "\n", "# 3. ¿Existe correlación entre el rol y la zona accedida? ¿Qué indica esto en términos de seguridad?\n", "print(\"\\nInterpretación:\")\n", "if I_XY > 0.01: # A small threshold for floating point comparisons\n", " print(f\" → I(X;Y) = {I_XY:.4f} > 0: Existe una correlación significativa entre el rol del empleado y la zona de acceso.\")\n", " print(\" → Esto indica que el conocimiento de una variable reduce la incertidumbre sobre la otra, lo cual es esperable en un sistema de control de acceso bien diseñado. Los diferentes roles tienen permisos y zonas de acceso específicas.\")\n", " print(\" → En términos de seguridad, esto es positivo, ya que muestra que las políticas de acceso están siendo seguidas y hay una estructura clara en los permisos.\")\n", "else:\n", " print(f\" → I(X;Y) = {I_XY:.4f} ≈ 0: Las variables son prácticamente independientes, lo cual sería inusual y preocupante en este contexto.\")\n", "\n", "# 4. Si un visitante accede a SALA_SERVIDORES, ¿cómo cambia la información mutua?\n", "print(\"\\nAnálisis de escenario: Visitante accede a SALA_SERVIDORES\")\n", "p_joint_anomalia = p_joint_ejercicio5.copy()\n", "# Simular un visitante accediendo a SALA_SERVIDORES\n", "# Para mantener la suma de probabilidades en 1, ajustamos otras probabilidades.\n", "# Por simplicidad, asignaremos una pequeña probabilidad al visitante en SALA_SERVIDORES\n", "# y restaremos de una probabilidad grande, por ejemplo, ADMIN en OFICINA.\n", "# Asumamos que el 0.00 de VISITANTE, SALA_SERVIDORES se convierte en 0.01\n", "# y restamos 0.01 de ADMIN, OFICINA.\n", "\n", "p_joint_anomalia[('VISITANTE', 'SALA_SERVIDORES')] = 0.01\n", "# Ajustar otra probabilidad para que la suma siga siendo 1.0\n", "p_joint_anomalia[('ADMIN', 'OFICINA')] -= 0.01\n", "\n", "# Recalcular H(X), H(Y), H(X,Y) para el escenario anómalo\n", "# Marginal probabilities for X (rol del empleado) anómalo\n", "p_admin_anomalo = p_joint_anomalia[('ADMIN', 'SALA_SERVIDORES')] + p_joint_anomalia[('ADMIN', 'OFICINA')] + p_joint_anomalia[('ADMIN', 'LOBBY')]\n", "p_operador_anomalo = p_joint_anomalia[('OPERADOR', 'SALA_SERVIDORES')] + p_joint_anomalia[('OPERADOR', 'OFICINA')] + p_joint_anomalia[('OPERADOR', 'LOBBY')]\n", "p_visitante_anomalo = p_joint_anomalia[('VISITANTE', 'SALA_SERVIDORES')] + p_joint_anomalia[('VISITANTE', 'OFICINA')] + p_joint_anomalia[('VISITANTE', 'LOBBY')]\n", "H_X_anomalo = entropia([p_admin_anomalo, p_operador_anomalo, p_visitante_anomalo])\n", "\n", "# Marginal probabilities for Y (zona de acceso) anómala\n", "p_sala_servidores_anomalo = p_joint_anomalia[('ADMIN', 'SALA_SERVIDORES')] + p_joint_anomalia[('OPERADOR', 'SALA_SERVIDORES')] + p_joint_anomalia[('VISITANTE', 'SALA_SERVIDORES')]\n", "p_oficina_anomalo = p_joint_anomalia[('ADMIN', 'OFICINA')] + p_joint_anomalia[('OPERADOR', 'OFICINA')] + p_joint_anomalia[('VISITANTE', 'OFICINA')]\n", "p_lobby_anomalo = p_joint_anomalia[('ADMIN', 'LOBBY')] + p_joint_anomalia[('OPERADOR', 'LOBBY')] + p_joint_anomalia[('VISITANTE', 'LOBBY')]\n", "H_Y_anomalo = entropia([p_sala_servidores_anomalo, p_oficina_anomalo, p_lobby_anomalo])\n", "\n", "H_XY_anomalo = entropia_conjunta(p_joint_anomalia)\n", "I_XY_anomalo = H_X_anomalo + H_Y_anomalo - H_XY_anomalo\n", "\n", "print(f\" I(X;Y) original = {I_XY:.4f} bits\")\n", "print(f\" I(X;Y) con anomalía = {I_XY_anomalo:.4f} bits\")\n", "print(\" → Un visitante accediendo a SALA_SERVIDORES es un evento que aumenta la información mutua (I(X;Y) se vuelve más grande). Esto ocurre porque se crea una correlación más fuerte entre 'VISITANTE' y 'SALA_SERVIDORES' que antes no existía (probabilidad 0). El sistema se vuelve más 'sorprendente' o 'informativo' cuando ocurre algo inesperado en una celda de baja probabilidad. Este aumento de I(X;Y) puede ser un indicador de un incidente de seguridad.\")\n" ] }, { "cell_type": "markdown", "id": "d961eea6", "metadata": { "id": "d961eea6" }, "source": [ "---\n", "## 6. 🔗 Caso Integrador — Resumen de Propiedades\n", "\n", "Este bloque final consolida todas las propiedades en una sola visualización comparativa,\n", "utilizando un conjunto de distribuciones representativas de distintos estados de seguridad.\n" ] }, { "cell_type": "code", "execution_count": 16, "id": "a7adf3d2", "metadata": { "colab": { "base_uri": "https://localhost:8080/", "height": 625 }, "id": "a7adf3d2", "outputId": "08678223-5534-429c-bc95-0e46a0cd3414" }, "outputs": [ { "data": { "image/png": "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AAAAAA8Mkh9IV2JiYqpHcnJypvtJSEhQr1699Pzzz2vFihVKSEhQp06d1LdvX7m6uurrr79Whw4d9Oqrr2r79u2WdqdOndIjjzyijz76SN999506d+6s5557zuqP9okTJ6pIkSJ69tlnZRiGbt68qV69eql169Z64YUXMn19tz8Mw8jUte7atUstW7aUh4eHli1bpsmTJ+u7775TaGiokpKSJEmGYah9+/bau3ev5s+frw8++EArV67UypUrM3SOmJgYbd++XY888kiax3v27KlWrVpp9erVqlWrlnr37q1Dhw5Z1WnQoIH27t2ry5cvZ+r6AAAAACA/Ys0PpOnmzZtydHRM85ibm1um+oqPj9fkyZMVGhoqSUpOTlbbtm1Vr149TZ8+XZLUrFkzLVu2TMuWLVODBg0kSd26dbP0YRiGGjdurLNnz2r+/Pnq1auXJMnV1VWfffaZGjRooFmzZungwYOKiIjQxx9/fMeYTp48qVKlSt019oULF6p3794ZvtZ33nlHRYoU0Zo1ayyvX/HixdW6dWutXbtWbdu21bp167R7925t3bpVjRo1slx/sWLF5O3tbekrNDRUN2/eVEREhB5//HFNnDhRkrR3714lJCSoevXqacYwcOBADRgwQNJ/SY7vv/9eK1as0BtvvGGpU6NGDUnSjh079Nhjj2X4+gAAAAAgPyL5gTS5urpq69atqco//PBDLVmyJFN92dnZqXnz5pbn5cuXlyS1aNHCUmZvb68yZcrozJkzlrKIiAiNHj1a33zzjc6dO2eZOVGwYEGr/uvWratRo0Zp+PDhio+P11dffaWAgIA7xhQYGKg///zzrrFnJEFyq19++UXdu3e3Shy1atVK3t7e2rZtm9q2bas///xT3t7elsSHJLm7u6t58+batWuXpWz27NkqU6aMoqOjVaFCBbVq1UpNmzbVhQsXJEl+fn5pxtCqVSvL125ubipZsqTVbUGSVKhQIUmy9AUAAAAAtozkB9JkZ2enOnXqpCpfs2ZNpvtydXWVk5OT5XnK17fOckgpj42NtTzv3bu3tm/frrfeektVqlSRp6en5s6dq6+++irVObp3765x48YpMDBQnTp1umtMTk5Oqlmz5l3r2dvb37XOrSIiIuTv75+q3N/f37Lux4ULF9JMXBQuXNjqeZkyZSwxJCcny87uv7vUUl4jZ2fnNGO4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MrbzN8Z07o/p21/TsWPHys/PL8O73+S0d955R6+//npuh5HnkfxAjklOTtaoUaP05ptvWsrefPNNVatWTQ4ODnl61eZFixapZs2auR2GFZPJpL179+boOV5//XUNHz48R8+BvIexev+UKFFCN27ckJeXV46f6+TJkzKZTIqMjMxwm+7du2vHjh3as2dPzgWGHJXWeL6bGzduqFq1anetl9GfQxnt716tW7dOAwYMsCq7evWq+vTpo+XLl6tSpUo5HkN+wdjOvxjTeWNM3/oanDlzRuPHj9fOnTt148YNFSxYMNfiSvHyyy/ro48+0r///pvboeRpJD+QY9auXStfX1+rD8uyZctqypQpateuXS5Glr8kJCTct34aN26syMhI/frrr9lyTuQPjFWksLOzU8+ePdP8zxvyh7TG8/2SXT+v7kXBggW1bds2toy+DWM7/2JM570xffLkSbm7u6tkyZJZap8Tr6u7u7tCQ0P18ccfZ3vftoTkB3LMt99+q2bNmlmV9erVS6GhofL09MxQH8eOHVPbtm3l5+enkiVL6u2331ZycrISEhJUqFAhbd261ap+5cqVtXTpUknSpUuX1LNnTwUEBCgwMFCvvPKK4uLiJElbtmyRt7e3PvroIxUvXlwFCxbUiBEjJEl79uxR//79tX//frm7u8vd3V2nT5+WYRiaNm2aypQpI19fXz366KM6fvx4urGbzWYNHDhQJUuWlKenp+rWraszZ85I+i97PHDgQJUoUUKFCxfWM888Y5kGn/Lf2oULF6ps2bIqVqyYgoODJUkNGjSQu7u7JkyYcMfXR/rff8RHjx6tIkWKqFu3bne9BpPJpGbNmunbb7/N0PcHtuFBH6tnz55Vq1at5OnpqYceekh///231fGLFy+qa9eu8vPzU4kSJfT6668rMTHRKr45c+aoaNGi8vHx0cyZMxUeHq569erJ09NTHTp00M2bNyWlno3Ru3dv9evXT926dZOHh4cqVKigLVu2WM79xRdfqGrVqvLw8FCJEiX05ptv6tZ1yk0mk+bNm6eqVavK09NT7dq1s3yWpHxuFCtWTO7u7lq8eLEkaffu3WratKl8fX1VtmxZLViwwOp6mzdvru++++4u33HkVWmN54MHD6p+/fry8PBQ06ZNdf78eavjt/73d/fu3apfv748PT1VqFAhtW3bVpLS/DmU1s+r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\n", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "name": "stdout", "output_type": "stream", "text": [ "Tabla resumen:\n", "Caso H(X) H_max % del máx.\n", "------------------------------------------------------------------------\n", "Entropía mínima (1 evento certero) -0.0000 0.0000 0.0%\n", "Entropía baja (1 evento dominante) 0.3349 1.5850 21.1%\n", "Entropía media (distribución sesgada) 1.4905 2.0000 74.5%\n", "Entropía alta (distribución uniforme) 2.0000 2.0000 100.0%\n" ] } ], "source": [ "# ── Resumen gráfico: las propiedades de la entropía ─────────────────────────\n", "casos = {\n", " \"Entropía mínima\\n(1 evento certero)\": [1.0],\n", " \"Entropía baja\\n(1 evento dominante)\": [0.95, 0.03, 0.02],\n", " \"Entropía media\\n(distribución sesgada)\":[0.60, 0.25, 0.10, 0.05],\n", " \"Entropía alta\\n(distribución uniforme)\":[0.25, 0.25, 0.25, 0.25],\n", "}\n", "\n", "nombres = list(casos.keys())\n", "valores_h = [entropia(v) for v in casos.values()]\n", "valores_hmax = [math.log2(len(v)) if len(v) > 1 else 0 for v in casos.values()]\n", "\n", "x = np.arange(len(nombres))\n", "ancho = 0.35\n", "\n", "fig, ax = plt.subplots(figsize=(11, 5))\n", "b1 = ax.bar(x - ancho/2, valores_h, ancho, label='H(X) real', color='#2E75B6', alpha=0.85)\n", "b2 = ax.bar(x + ancho/2, valores_hmax, ancho, label='H_max = log₂(n)', color='#1D6F3B', alpha=0.6)\n", "\n", "ax.set_ylabel('Entropía [bits]')\n", "ax.set_title('Resumen de propiedades de la entropía de Shannon')\n", "ax.set_xticks(x)\n", "ax.set_xticklabels(nombres, fontsize=9)\n", "ax.legend()\n", "ax.axhline(0, color='gray', linewidth=0.5, linestyle='--')\n", "\n", "for b in b1:\n", " if b.get_height() > 0:\n", " ax.text(b.get_x() + b.get_width()/2, b.get_height() + 0.03,\n", " f'{b.get_height():.3f}', ha='center', fontsize=9, color='#2E75B6')\n", "for b in b2:\n", " if b.get_height() > 0:\n", " ax.text(b.get_x() + b.get_width()/2, b.get_height() + 0.03,\n", " f'{b.get_height():.3f}', ha='center', fontsize=9, color='#1D6F3B')\n", "\n", "plt.tight_layout()\n", "plt.show()\n", "\n", "print(\"Tabla resumen:\")\n", "print(f\"{'Caso':<38} {'H(X)':>8} {'H_max':>8} {'% del máx.':>12}\")\n", "print(\"-\" * 72)\n", "for nombre, h, hm in zip(nombres, valores_h, valores_hmax):\n", " pct = (100 * h / hm) if hm > 0 else 0\n", " nombre_clean = nombre.replace('\\n', ' ')\n", " print(f\"{nombre_clean:<38} {h:>8.4f} {hm:>8.4f} {pct:>11.1f}%\")" ] }, { "cell_type": "markdown", "id": "0fb13738", "metadata": { "id": "0fb13738" }, "source": [ "---\n", "## ✅ Cierre del notebook\n", "\n", "### Conexión con el Reto 2\n", "\n", "Los conceptos de este notebook son la base directa del Reto 2:\n", "la entropía conjunta, la información mutua y la redundancia que calcularás sobre datos\n", "reales son extensiones naturales de lo practicado aquí.\n", "\n", "### Referencias\n", "\n", "- Shannon, C. E. (1948). A mathematical theory of communication. *Bell System Technical Journal*, 27(3), 379–423. https://doi.org/10.1002/j.1538-7305.1948.tb01338.x \n", "- Csiszár, I., & Körner, J. (2011). *Information theory: Coding theorems for discrete memoryless systems* (2nd ed.). Cambridge University Press. \n", "- Alencar, M. S. (2015). *Information theory*. Momentum Press.\n" ] } ], "metadata": { "colab": { "provenance": [] }, "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.13.9" } }, "nbformat": 4, "nbformat_minor": 5 }