Skip to content

Commit

Permalink
build based on 837e5c2
Browse files Browse the repository at this point in the history
  • Loading branch information
Documenter.jl committed Oct 26, 2023
1 parent cbbe5d2 commit f2e7823
Show file tree
Hide file tree
Showing 15 changed files with 334 additions and 334 deletions.
2 changes: 1 addition & 1 deletion dev/.documenter-siteinfo.json
Original file line number Diff line number Diff line change
@@ -1 +1 @@
{"documenter":{"julia_version":"1.8.5","generation_timestamp":"2023-10-25T08:02:42","documenter_version":"1.1.2"}}
{"documenter":{"julia_version":"1.8.5","generation_timestamp":"2023-10-26T01:44:01","documenter_version":"1.1.2"}}
112 changes: 56 additions & 56 deletions dev/convergence/8790dce3.svg → dev/convergence/43e63918.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
56 changes: 28 additions & 28 deletions dev/convergence/44f87fc3.svg → dev/convergence/9f98322e.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
52 changes: 26 additions & 26 deletions dev/convergence/f8dcc995.svg → dev/convergence/d30c6aff.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
6 changes: 3 additions & 3 deletions dev/convergence/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
sol_transmitter = solve(prob_T, AutoTsit5(Rodas4P()), abstol = 1e-11, reltol = 1e-11)

# Plot only the x-component of the solution for transmitter's dynamical system
transmitter_plot = plot(sol_transmitter, idxs = (0, 1), legend = false, xlabel=L&quot;t&quot;, ylabel=&quot;Transmitter&quot;,linecolor=&quot;black&quot;)</code></pre><img src="f8dcc995.svg" alt="Example block output"/><p>Next, we find the solution to the receiver&#39;s dynamical system with the same parameters <span>$\sigma = 16$</span>, <span>$r=45.6$</span>, and <span>$b=4$</span> as before, but with different initial condition <span>$[10.2,7.3,6.0]$</span>. Also, notice that in the definition of the receiver&#39;s system, we are using <span>$x_T$</span> which is the <span>$x$</span>-coordinate of the transmitter&#39;s dynamical system. Hence, the receiver&#39;s dynamical system have some information about the transmitter&#39;s dynamical system. </p><pre><code class="language-julia hljs"># Get only the x-coordinates of the solution
transmitter_plot = plot(sol_transmitter, idxs = (0, 1), legend = false, xlabel=L&quot;t&quot;, ylabel=&quot;Transmitter&quot;,linecolor=&quot;black&quot;)</code></pre><img src="d30c6aff.svg" alt="Example block output"/><p>Next, we find the solution to the receiver&#39;s dynamical system with the same parameters <span>$\sigma = 16$</span>, <span>$r=45.6$</span>, and <span>$b=4$</span> as before, but with different initial condition <span>$[10.2,7.3,6.0]$</span>. Also, notice that in the definition of the receiver&#39;s system, we are using <span>$x_T$</span> which is the <span>$x$</span>-coordinate of the transmitter&#39;s dynamical system. Hence, the receiver&#39;s dynamical system have some information about the transmitter&#39;s dynamical system. </p><pre><code class="language-julia hljs"># Get only the x-coordinates of the solution
x_at_time_t_transmitter(t) = sol_transmitter(t,idxs=1)

u0 = [10.2,7.3,6.0] # Different intial conditions
Expand All @@ -33,7 +33,7 @@
sol_receiver = solve(prob_R, AutoTsit5(Rodas4P()), abstol = 1e-11, reltol = 1e-11)

# Plot only the x-component of the solution for receiver&#39;s dynamical system
receiver_plot = plot(sol_receiver, idxs = (0, 1), legend = false, xlabel=L&quot;t&quot;, ylabel=&quot;Receiver&quot;,linecolor=&quot;black&quot;)</code></pre><img src="44f87fc3.svg" alt="Example block output"/><p>Lastly, we plot the absolute error between the <span>$x$</span>-component of the receiver&#39;s dynamical system and the transmitter&#39;s dynamical system. We see that the error converge to zero which means the pair of dynamical system synchronize despite starting at different initial conditions. Also, it has been shown that the error converge to zero in <span>$O(t^2)$</span> time. The idea behind sending secret messages using chaotic dynamical systems is to encode a message in <span>$x_T$</span> and having the receiver&#39;s dynamical system reproduce the message by its synchronization! </p><pre><code class="language-julia hljs"># Get only the x-coordinates of the solution
receiver_plot = plot(sol_receiver, idxs = (0, 1), legend = false, xlabel=L&quot;t&quot;, ylabel=&quot;Receiver&quot;,linecolor=&quot;black&quot;)</code></pre><img src="9f98322e.svg" alt="Example block output"/><p>Lastly, we plot the absolute error between the <span>$x$</span>-component of the receiver&#39;s dynamical system and the transmitter&#39;s dynamical system. We see that the error converge to zero which means the pair of dynamical system synchronize despite starting at different initial conditions. Also, it has been shown that the error converge to zero in <span>$O(t^2)$</span> time. The idea behind sending secret messages using chaotic dynamical systems is to encode a message in <span>$x_T$</span> and having the receiver&#39;s dynamical system reproduce the message by its synchronization! </p><pre><code class="language-julia hljs"># Get only the x-coordinates of the solution
x_at_time_t_receiver(t) = sol_receiver(t,idxs=1)

# Plot the errors and the x-coordinates of the solutions
Expand All @@ -43,4 +43,4 @@
x_coord_plot = plot(x_at_time_t_transmitter, tspan...,label=&quot;Transmitter&quot;,xlabel=L&quot;t&quot;,ylabel=L&quot;x(t)&quot;)
plot!(x_at_time_t_receiver, tspan...,label=&quot;Receiver&quot;)

combined_plot = plot(x_coord_plot, error_plot, dpi=600)</code></pre><img src="8790dce3.svg" alt="Example block output"/></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Home</a><a class="docs-footer-nextpage" href="../sending_a_message/">Sending a secret message »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.2 on <span class="colophon-date" title="Wednesday 25 October 2023 08:02">Wednesday 25 October 2023</span>. Using Julia version 1.8.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
combined_plot = plot(x_coord_plot, error_plot, dpi=600)</code></pre><img src="43e63918.svg" alt="Example block output"/></article><nav class="docs-footer"><a class="docs-footer-prevpage" href="../">« Home</a><a class="docs-footer-nextpage" href="../sending_a_message/">Sending a secret message »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.2 on <span class="colophon-date" title="Thursday 26 October 2023 01:43">Thursday 26 October 2023</span>. Using Julia version 1.8.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/documentation/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion dev/index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"/><meta name="viewport" content="width=device-width, initial-scale=1.0"/><title>Home · ChaoticMessages.jl</title><meta name="title" content="Home · ChaoticMessages.jl"/><meta property="og:title" content="Home · ChaoticMessages.jl"/><meta property="twitter:title" content="Home · ChaoticMessages.jl"/><meta name="description" content="Documentation for ChaoticMessages.jl."/><meta property="og:description" content="Documentation for ChaoticMessages.jl."/><meta property="twitter:description" content="Documentation for ChaoticMessages.jl."/><script data-outdated-warner src="assets/warner.js"></script><link href="https://cdnjs.cloudflare.com/ajax/libs/lato-font/3.0.0/css/lato-font.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/juliamono/0.050/juliamono.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/fontawesome.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/solid.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/brands.min.css" rel="stylesheet" type="text/css"/><link href="https://cdnjs.cloudflare.com/ajax/libs/KaTeX/0.16.8/katex.min.css" rel="stylesheet" type="text/css"/><script>documenterBaseURL="."</script><script src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.3.6/require.min.js" data-main="assets/documenter.js"></script><script src="search_index.js"></script><script src="siteinfo.js"></script><script src="../versions.js"></script><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-dark.css" data-theme-name="documenter-dark" data-theme-primary-dark/><link class="docs-theme-link" rel="stylesheet" type="text/css" href="assets/themes/documenter-light.css" data-theme-name="documenter-light" data-theme-primary/><script src="assets/themeswap.js"></script></head><body><div id="documenter"><nav class="docs-sidebar"><div class="docs-package-name"><span class="docs-autofit"><a href>ChaoticMessages.jl</a></span></div><button class="docs-search-query input is-rounded is-small is-clickable my-2 mx-auto py-1 px-2" id="documenter-search-query">Search docs (Ctrl + /)</button><ul class="docs-menu"><li class="is-active"><a class="tocitem" href>Home</a><ul class="internal"><li><a class="tocitem" href="#Introduction"><span>Introduction</span></a></li><li><a class="tocitem" href="#Getting-Started:-Installation"><span>Getting Started: Installation</span></a></li><li class="toplevel"><a class="tocitem" href="#References"><span>References</span></a></li></ul></li><li><span class="tocitem">Examples</span><ul><li><a class="tocitem" href="convergence/">Convergence</a></li><li><a class="tocitem" href="sending_a_message/">Sending a secret message</a></li><li><a class="tocitem" href="sending_a_binary_message/">Sending a secret binary message</a></li></ul></li><li><a class="tocitem" href="documentation/">Documentation</a></li></ul><div class="docs-version-selector field has-addons"><div class="control"><span class="docs-label button is-static is-size-7">Version</span></div><div class="docs-selector control is-expanded"><div class="select is-fullwidth is-size-7"><select id="documenter-version-selector"></select></div></div></div></nav><div class="docs-main"><header class="docs-navbar"><a class="docs-sidebar-button docs-navbar-link fa-solid fa-bars is-hidden-desktop" id="documenter-sidebar-button" href="#"></a><nav class="breadcrumb"><ul class="is-hidden-mobile"><li class="is-active"><a href>Home</a></li></ul><ul class="is-hidden-tablet"><li class="is-active"><a href>Home</a></li></ul></nav><div class="docs-right"><a class="docs-navbar-link" href="https://github.com/ph-kev/ChaoticMessages.jl" title="View the repository on GitHub"><span class="docs-icon fa-brands"></span><span class="docs-label is-hidden-touch">GitHub</span></a><a class="docs-navbar-link" href="https://github.com/ph-kev/ChaoticMessages.jl/blob/main/docs/src/index.md" title="Edit source on GitHub"><span class="docs-icon fa-solid"></span></a><a class="docs-settings-button docs-navbar-link fa-solid fa-gear" id="documenter-settings-button" href="#" title="Settings"></a><a class="docs-article-toggle-button fa-solid fa-chevron-up" id="documenter-article-toggle-button" href="javascript:;" title="Collapse all docstrings"></a></div></header><article class="content" id="documenter-page"><h1 id="ChaoticMessages.jl:-Encrypting-messages-using-chaos"><a class="docs-heading-anchor" href="#ChaoticMessages.jl:-Encrypting-messages-using-chaos">ChaoticMessages.jl: Encrypting messages using chaos</a><a id="ChaoticMessages.jl:-Encrypting-messages-using-chaos-1"></a><a class="docs-heading-anchor-permalink" href="#ChaoticMessages.jl:-Encrypting-messages-using-chaos" title="Permalink"></a></h1><h2 id="Introduction"><a class="docs-heading-anchor" href="#Introduction">Introduction</a><a id="Introduction-1"></a><a class="docs-heading-anchor-permalink" href="#Introduction" title="Permalink"></a></h2><p>Chaotic systems are known for their sensitivity to initial conditions. Two trajectories that start close together can diverge from each other. Despite this, Pecora and Carroll (1990) discovered that a pair of chaotic systems can synchronize with each other, so that the trajectories are eventually the same in time [1]. </p><p>Cuomo, Oppenheim, and Strogatz studied a pair of dynamical systems based on the Lorenz system and use it to encrypt messages in the field of communications [2, 3, 4]. In particular, they have shown that the pair of dynamical systems do synchronize and synchronization is exponential, built an algorithm to send secret messages, and how noise can affect the quality of transmission. However, their implementation is built using circuits. </p><p>This package simulates the chaotic dynamical systems using <code>DifferentialEquations.jl</code> to illustrate how secret messages can be sent using chaos. In particular, messages by embedding them into the trajectory of the chaotic dynamical system and binary messages can be sent secretly using parameter modulation. </p><h2 id="Getting-Started:-Installation"><a class="docs-heading-anchor" href="#Getting-Started:-Installation">Getting Started: Installation</a><a id="Getting-Started:-Installation-1"></a><a class="docs-heading-anchor-permalink" href="#Getting-Started:-Installation" title="Permalink"></a></h2><pre><code class="language-julia hljs">julia&gt; ]

(@v1.8) pkg&gt; add https://github.com/ph-kev/ChaoticMessages.jl</code></pre><h1 id="References"><a class="docs-heading-anchor" href="#References">References</a><a id="References-1"></a><a class="docs-heading-anchor-permalink" href="#References" title="Permalink"></a></h1><p>[1] Louis M. Pecora and Thomas L. Carroll. “Synchronization in chaotic systems”. In: Phys. Rev. Lett. 64 (8 Feb. 1990), pp. 821–824. doi: 10.1103/PhysRevLett.64.821. url: https://link.aps.org/doi/10.1103/PhysRevLett.64.821.</p><p>[2] Kevin M. Cuomo and Alan V. Oppenheim. “Circuit implementation of synchronized chaos with applications to communications”. In: Phys. Rev. Lett. 71 (1 July 1993), pp. 65–68. doi:10.1103/PhysRevLett.71.65. url: https://link.aps.org/doi/10.1103/PhysRevLett.71.65.</p><p>[3] K.M. Cuomo, A.V. Oppenheim, and S.H. Strogatz. “Synchronization of Lorenz-based chaotic circuits with applications to communications”. In: IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing 40.10 (1993), pp. 626–633. doi: 10.1109/82.246163</p><p>[4] K.M. Cuomo, A.V. Oppenheim, and S.H. Strogatz. “Robustness and Signal Recovery in a Synchronized Chaotic System”. In: International Journal of Bifurcation and Chaos 03.06 (1993), pp. 1629–1638. doi: 10.1142/S021812749300129X. url: https://doi.org/10.1142/S021812749300129X.</p></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="convergence/">Convergence »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.2 on <span class="colophon-date" title="Wednesday 25 October 2023 08:02">Wednesday 25 October 2023</span>. Using Julia version 1.8.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
(@v1.8) pkg&gt; add https://github.com/ph-kev/ChaoticMessages.jl</code></pre><h1 id="References"><a class="docs-heading-anchor" href="#References">References</a><a id="References-1"></a><a class="docs-heading-anchor-permalink" href="#References" title="Permalink"></a></h1><p>[1] Louis M. Pecora and Thomas L. Carroll. “Synchronization in chaotic systems”. In: Phys. Rev. Lett. 64 (8 Feb. 1990), pp. 821–824. doi: 10.1103/PhysRevLett.64.821. url: https://link.aps.org/doi/10.1103/PhysRevLett.64.821.</p><p>[2] Kevin M. Cuomo and Alan V. Oppenheim. “Circuit implementation of synchronized chaos with applications to communications”. In: Phys. Rev. Lett. 71 (1 July 1993), pp. 65–68. doi:10.1103/PhysRevLett.71.65. url: https://link.aps.org/doi/10.1103/PhysRevLett.71.65.</p><p>[3] K.M. Cuomo, A.V. Oppenheim, and S.H. Strogatz. “Synchronization of Lorenz-based chaotic circuits with applications to communications”. In: IEEE Transactions on Circuits and Systems II: Analog and Digital Signal Processing 40.10 (1993), pp. 626–633. doi: 10.1109/82.246163</p><p>[4] K.M. Cuomo, A.V. Oppenheim, and S.H. Strogatz. “Robustness and Signal Recovery in a Synchronized Chaotic System”. In: International Journal of Bifurcation and Chaos 03.06 (1993), pp. 1629–1638. doi: 10.1142/S021812749300129X. url: https://doi.org/10.1142/S021812749300129X.</p></article><nav class="docs-footer"><a class="docs-footer-nextpage" href="convergence/">Convergence »</a><div class="flexbox-break"></div><p class="footer-message">Powered by <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> and the <a href="https://julialang.org/">Julia Programming Language</a>.</p></nav></div><div class="modal" id="documenter-settings"><div class="modal-background"></div><div class="modal-card"><header class="modal-card-head"><p class="modal-card-title">Settings</p><button class="delete"></button></header><section class="modal-card-body"><p><label class="label">Theme</label><div class="select"><select id="documenter-themepicker"><option value="documenter-light">documenter-light</option><option value="documenter-dark">documenter-dark</option><option value="auto">Automatic (OS)</option></select></div></p><hr/><p>This document was generated with <a href="https://github.com/JuliaDocs/Documenter.jl">Documenter.jl</a> version 1.1.2 on <span class="colophon-date" title="Thursday 26 October 2023 01:43">Thursday 26 October 2023</span>. Using Julia version 1.8.5.</p></section><footer class="modal-card-foot"></footer></div></div></div></body></html>
2 changes: 1 addition & 1 deletion dev/search_index.js

Large diffs are not rendered by default.

Loading

0 comments on commit f2e7823

Please sign in to comment.