<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Strainu onLine &#187; ARCFOUR</title>
	<atom:link href="http://www.strainu.ro/tag/arcfour/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.strainu.ro</link>
	<description>Blogul unui automatist</description>
	<lastBuildDate>Fri, 28 Oct 2011 15:46:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.5</generator>
		<item>
		<title>Maşină de codare cu algoritmul ARCFOUR şi microcontrollerul Atmel ATmega16</title>
		<link>http://www.strainu.ro/projects/masina-de-codare-cu-algoritmul-arcfour-si-microcontrollerul-atmel-atmega16/</link>
		<comments>http://www.strainu.ro/projects/masina-de-codare-cu-algoritmul-arcfour-si-microcontrollerul-atmel-atmega16/#comments</comments>
		<pubDate>Tue, 23 Jan 2007 20:39:19 +0000</pubDate>
		<dc:creator>Strainu</dc:creator>
				<category><![CDATA[Articles]]></category>
		<category><![CDATA[My Projects]]></category>
		<category><![CDATA[Romana]]></category>
		<category><![CDATA[ARCFOUR]]></category>
		<category><![CDATA[ATMEGA16]]></category>
		<category><![CDATA[microcontroller]]></category>
		<category><![CDATA[Proiectarea cu microprocesoare]]></category>

		<guid isPermaLink="false">http://www.strainu.ro/site/?p=209</guid>
		<description><![CDATA[Pentru versiunea original&#259; a articolului, inclusiv codul, vezi pagina de proiecte. Cuprins 1 Ideea proiectului 1.1 Codarea 1.2 Decodarea 2 Modalitatea de implementare 3 Partea hardware 3.1 Comunicarea cu cardul 3.1.1 Initializarea 3.1.2 Citirea 3.1.3 Scrierea 3.2 Lista componentelor necesare 4 Partea software 4.1 CODARE 4.2 DECODARE 4.3 LIMIT&#258;RI 4.4 STRUCTURA PROGRAMULUI 4.5 UNELTE SOFTWARE [...]]]></description>
			<content:encoded><![CDATA[<style type="text/css">
<!--
	#content {
	  padding: 0 1em 1.5em 1em;
	  background: white;
	  color: black;
	  line-height: 1.5em;
	  position: relative;
	  z-index: 2;
        }</p>
<p>/* Font size:
** We take advantage of keyword scaling- browsers won't go below 9px
** More at http://www.w3.org/2003/07/30-font-size
** http://style.cleverchimp.com/font_size_intervals/altintervals.html
*/</p>
<p>body {
	color: black;
	margin: 0;
	padding: 0;
}</p>
<p>/* general styles */</p>
<p>table {
	font-size: 100%;
	color: black;
	/* we don't want the bottom borders of 
<h2>s to be visible through
	   floated tables */
	background-color: white;
}</p>
<p>img {
	border: none;
	vertical-align: middle;
}</p>
<p>p img {
	margin: 0;
}</p>
<p>hr {
	height: 1px;
	color: #aaa;
	background-color: #aaa;
	border: 0;
	margin: .2em 0 .2em 0;
}</p>
<p>ul {
	line-height: 1.5em;
	list-style-type: square;
	margin: .3em 0 0 1.5em;
	padding: 0;
	list-style-image: url(bullet.gif);
}
ol {
	line-height: 1.5em;
	margin: .3em 0 0 3.2em;
	padding: 0;
	list-style-image: none;
}
li {
	margin-bottom: .1em;
}
dt {
	font-weight: bold;
	margin-bottom: .1em;
}
dl {
	margin-top: .2em;
	margin-bottom: .5em;
}
dd {
	line-height: 1.5em;
	margin-left: 2em;
	margin-bottom: .1em;
}</p>
<p>fieldset {
	border: 1px solid #2f6fab;
	margin: 1em 0 1em 0;
	padding: 0 1em 1em;
	line-height: 1.5em;
}
legend {
	padding: .5em;
	font-size: 95%;
}
form {
	border: none;
	margin: 0;
}</p>
<p>textarea {
	width: 100%;
	padding: .1em;
}</p>
<p>select {
	vertical-align: top;
}
abbr, acronym, .explain {
	border-bottom: 1px dotted black;
	color: black;
	background: none;
	cursor: help;
}
q {
	font-family: Times, "Times New Roman", serif;
	font-style: italic;
}</p>
<p>code {
	background-color: #f9f9f9;
}
pre {
	padding: 1em;
	border: 1px dashed #2f6fab;
	color: black;
	background-color: #f9f9f9;
	line-height: 1.1em;
}</p>
<p>/*
** the main content area
*/</p>
<p>#contentSub, #contentSub2 {
	font-size: 84%;
	line-height: 1.2em;
	margin: 0 0 1.4em 1em;
	color: #7d7d7d;
	width: auto;
}
span.subpages {
	display: block;
}</p>
<p>/* Some space under the headers in the content area */
#bodyContent h1, #bodyContent h2 {
	margin-bottom: .6em;
}
#bodyContent h3, #bodyContent h4, #bodyContent h5 {
	margin-bottom: .3em;
}
.firstHeading {
	margin-bottom: .1em;
}</p>
<p>/* user notification thing */
.usermessage {
	background-color: #ffce7b;
	border: 1px solid #ffa500;
	color: black;
	font-weight: bold;
	margin: 2em 0 1em;
	padding: .5em 1em;
	vertical-align: middle;
}
#siteNotice {
	text-align: center;
	font-size: 95%;
	padding: 0 .9em;
}
#siteNotice p {
	margin: 0;
	padding: 0;
}
.error {
	color: red;
	font-size: larger;
}
.errorbox, .successbox {
	font-size: larger;
	border: 2px solid;
	padding: .5em 1em;
	float: left;
	margin-bottom: 2em;
	color: #000;
}
.errorbox {
	border-color: red;
	background-color: #fff2f2;
}
.successbox {
	border-color: green;
	background-color: #dfd;
}
.errorbox h2, .successbox h2 {
	font-size: 1em;
	font-weight: bold;
	display: inline;
	margin: 0 .5em 0 0;
	border: none;
}</p>
<p>#catlinks {
	border: 1px solid #aaa;
	background-color: #f9f9f9;
	padding: 5px;
	margin-top: 1em;
	clear: both;
}</p>
<p>/* emulate center */
.center {
	width: 100%;
	text-align: center;
}
*.center * {
	margin-left: auto;
	margin-right: auto;
}
/* small for tables and similar */
.small, .small * {
	font-size: 94%;
}
table.small {
	font-size: 100%;
}</p>
<p>/*
** content styles
*/</p>
<p>#toc{
	border: 1px solid #aaa;
	background-color: #f9f9f9;
	padding: 5px;
	font-size: 95%;
}
.toc{
	border: 1px solid #aaa;
	background-color: #f9f9f9;
	padding: 5px;
	font-size: 95%;
}</p>
<p>#toc h2 {
	display: inline;
	border: none;
	padding: 0;
	font-size: 100%;
	font-weight: bold;
}
.toc h2 {
	display: inline;
	border: none;
	padding: 0;
	font-size: 100%;
	font-weight: bold;
}
#toc #toctitle,
.toc #toctitle,
#toc .toctitle,
.toc .toctitle {
	text-align: center;
}
#toc ul,
.toc ul {
	list-style-type: none;
	list-style-image: none;
	margin-left: 0;
	padding-left: 0;
	text-align: left;
}
#toc ul ul,
.toc ul ul {
	margin: 0 0 0 2em;
}
#toc .toctoggle,
.toc .toctoggle {
	font-size: 94%;
}</p>
<p>.mw-warning {
	margin-left: 50px;
	margin-right: 50px;
	text-align: center;
}</p>
<p>/* images */
div.floatright, table.floatright {
	clear: right;
	float: right;
	position: relative;
	margin: 0 0 .5em .5em;
	border: 0;
/*
	border: .5em solid white;
	border-width: .5em 0 .8em 1.4em;
*/
}
div.floatright p { font-style: italic; }
div.floatleft, table.floatleft {
	float: left;
	clear: left;
	position: relative;
	margin: 0 .5em .5em 0;
	border: 0;
}
div.floatleft p { font-style: italic; }
/* thumbnails */
div.thumb {
	margin-bottom: .5em;
	border-style: solid;
	border-color: white;
	width: auto;
}
div.thumbinner {
	border: 1px solid #ccc;
	padding: 3px !important;
	background-color: #f9f9f9;
	font-size: 94%;
	text-align: center;
	overflow: hidden;
}
html .thumbimage {
	border: 1px solid #ccc;
}
html .thumbcaption {
	border: none;
	text-align: left;
	line-height: 1.4em;
	padding: 3px !important;
	font-size: 94%;
}
div.magnify {
	float: right;
	border: none !important;
	background: none !important;
}
div.magnify a, div.magnify img {
	display: block;
	border: none !important;
	background: none !important;
}
div.tright {
	clear: right;
	float: right;
	border-width: .5em 0 .8em 1.4em;
}
div.tleft {
	float: left;
	clear: left;
	margin-right: .5em;
	border-width: .5em 1.4em .8em 0;
}</p>
<p>.hiddenStructure {
	display: none;
	speak: none;
}
img.tex {
	vertical-align: middle;
}
span.texhtml {
	font-family: serif;
}</p>
<p>/*
** classes for special content elements like town boxes
** intended to be referenced directly from the wiki src
*/</p>
<p>/*
** User styles
*/
/* table standards */
table.rimage {
	float: right;
	position: relative;
	margin-left: 1em;
	margin-bottom: 1em;
	text-align: center;
}
.toccolours {
	border: 1px solid #aaa;
	background-color: #f9f9f9;
	padding: 5px;
	font-size: 95%;
}
div.townBox {
	position: relative;
	float: right;
	background: white;
	margin-left: 1em;
	border: 1px solid gray;
	padding: .3em;
	width: 200px;
	overflow: hidden;
	clear: right;
}
div.townBox dl {
	padding: 0;
	margin: 0 0 .3em;
	font-size: 96%;
}
div.townBox dl dt {
	background: none;
	margin: .4em 0 0;
}
div.townBox dl dd {
	margin: .1em 0 0 1.1em;
	background-color: #f3f3f3;
}</p>
<p>#login-sectiontip {
	font-size: 85%;
	line-height: 1.2;
	padding-top: 2em;
}</p>
<p>.redirectText {
	font-size: 150%;
	margin: 5px;
}</p>
<p>.printfooter {
	display: none;
}</p>
<p>table.gallery {
	border: 1px solid #ccc;
	margin: 2px;
	padding: 2px;
	background-color: white;
}</p>
<p>table.gallery tr {
	vertical-align: top;
}</p>
<p>table.gallery td {
	vertical-align: top;
	background-color: #f9f9f9;
	border: solid 2px white;
}</p>
<p>table.gallery td.galleryheader {
	text-align: center;
	font-weight: bold;
}</p>
<p>div.gallerybox {
	margin: 2px;
	width:  150px;
}</p>
<p>div.gallerybox div.thumb {
	text-align: center;
	border: 1px solid #ccc;
	margin: 2px;
}</p>
<p>div.gallerytext {
	font-size: 94%;
	padding: 2px 4px;
}</p>
<p>span.comment {
	font-style: italic;
}</p>
<p>span.changedby {
	font-size: 95%;
}</p>
<p>.previewnote {
	text-indent: 3em;
	color: #c00;
	border-bottom: 1px solid #aaa;
	padding-bottom: 1em;
	margin-bottom: 1em;
}</p>
<p>.previewnote p {
	margin: 0;
	padding: 0;
}</p>
<p>li span.deleted, span.history-deleted {
	text-decoration: line-through;
	color: #888;
	font-style: italic;
}</p>
<p>.toggle {
	margin-left: 2em;
	text-indent: -2em;
}</p>
<p>.imagelist td, .imagelist th { white-space: nowrap }
.imagelist .TablePager_col_links { background-color: #eeeeff }
.imagelist .TablePager_col_img_description { white-space: normal }
.imagelist th.TablePager_sort { background-color: #ccccff }</p>
<p>-->
</style>
<p>Pentru versiunea original&#259; a articolului, inclusiv codul, vezi <a href="http://proiecte.strainu.ro/ProiectPM/">pagina de proiecte</a>.</p>
<table id="toc" class="toc" summary="Cuprins">
<tr>
<td>
<div id="toctitle">
<h2>Cuprins</h2>
</div>
<ul>
<li class="toclevel-1"><a href="#Ideea_proiectului"><span class="tocnumber">1</span> <span class="toctext">Ideea proiectului</span></a>
<ul>
<li class="toclevel-2"><a href="#Codarea"><span class="tocnumber">1.1</span> <span class="toctext">Codarea</span></a></li>
<li class="toclevel-2"><a href="#Decodarea"><span class="tocnumber">1.2</span> <span class="toctext">Decodarea</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="#Modalitatea_de_implementare"><span class="tocnumber">2</span> <span class="toctext">Modalitatea de implementare</span></a></li>
<li class="toclevel-1"><a href="#Partea_hardware"><span class="tocnumber">3</span> <span class="toctext">Partea hardware</span></a>
<ul>
<li class="toclevel-2"><a href="#Comunicarea_cu_cardul"><span class="tocnumber">3.1</span> <span class="toctext">Comunicarea cu cardul</span></a>
<ul>
<li class="toclevel-3"><a href="#Initializarea"><span class="tocnumber">3.1.1</span> <span class="toctext">Initializarea</span></a></li>
<li class="toclevel-3"><a href="#Citirea"><span class="tocnumber">3.1.2</span> <span class="toctext">Citirea</span></a></li>
<li class="toclevel-3"><a href="#Scrierea"><span class="tocnumber">3.1.3</span> <span class="toctext">Scrierea</span></a></li>
</ul>
</li>
<li class="toclevel-2"><a href="#Lista_componentelor_necesare"><span class="tocnumber">3.2</span> <span class="toctext">Lista componentelor necesare</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="#Partea_software"><span class="tocnumber">4</span> <span class="toctext">Partea software</span></a>
<ul>
<li class="toclevel-2"><a href="#CODARE"><span class="tocnumber">4.1</span> <span class="toctext">CODARE</span></a></li>
<li class="toclevel-2"><a href="#DECODARE"><span class="tocnumber">4.2</span> <span class="toctext">DECODARE</span></a></li>
<li class="toclevel-2"><a href="#LIMIT.C4.82RI"><span class="tocnumber">4.3</span> <span class="toctext">LIMIT&#258;RI</span></a></li>
<li class="toclevel-2"><a href="#STRUCTURA_PROGRAMULUI"><span class="tocnumber">4.4</span> <span class="toctext">STRUCTURA PROGRAMULUI</span></a></li>
<li class="toclevel-2"><a href="#UNELTE_SOFTWARE"><span class="tocnumber">4.5</span> <span class="toctext">UNELTE SOFTWARE</span></a></li>
</ul>
</li>
<li class="toclevel-1"><a href="#Concluzii"><span class="tocnumber">5</span> <span class="toctext">Concluzii</span></a></li>
<li class="toclevel-1"><a href="#Referinte_.C5.9Fi_Link-uri"><span class="tocnumber">6</span> <span class="toctext">Referinte &#351;i Link-uri</span></a></li>
</ul>
</td>
</tr>
</table>
<p><a name="Ideea_proiectului" id="Ideea_proiectului"></a></p>
<h2> <span class="mw-headline">Ideea proiectului</span></h2>
<p>Proiectul const&#259; în realizarea unui dispozitiv de codare/decodare a datelor de pe un card de memorie folosind un algoritm asem&#259;n&#259;tor cu RC4.</p>
<p><a name="Codarea" id="Codarea"></a></p>
<h3><span class="mw-headline">Codarea</span></h3>
<p>Datele vor fi citite de la calculator prin interfa&#355;a serial&#259;, vor fi codate în microporcesor &#351;i vor fi scrise pe un card SD/MMC care poate fi apoi transportat la o ma&#351;in&#259; de decodare</p>
<p><a name="Decodarea" id="Decodarea"></a></p>
<h3> <span class="mw-headline">Decodarea</span></h3>
<p>Datele codate vor fi citite de pe card, decodate &#351;i scrise pe interfa&#355;a serial&#259; c&#259;tre calculator.</p>
<p>Proiectul nu va coda decât buc&#259;&#355;i de text introduse în hyperterminal. Pentru a coda &#351;i alte tipuri de date se poate crea un program care s&#259; ruleze pe calculator &#351;i care s&#259; fac&#259; o codare în base64.</p>
<p></p>
<p><a name="Modalitatea_de_implementare" id="Modalitatea_de_implementare"></a></p>
<h2> <span class="mw-headline">Modalitatea de implementare</span></h2>
<p>Vom folosi <a href="http://learningcenter.ncit.pub.ro/mod/resource/view.php?id=360" title="plăcuţa realizată la faza 1">plăcuţa realizată la faza 1</a>, care con&#355;ine microcontrolerul Atmel ATMega16, circuitul de alimentare la 5V &#351;i portul serial de comunicare cu calculatorul.</p>
<p>La acest circuit vom mai ata&#351;a un cititor de carduri SD/MMC pentru a stoca datele codate. Comunicarea între microcontroler &#351;i cititorul de carduri se face prin portul SPI (pinii PB4-PB7 ai microcontrolerului). Cardurile MMC sunt alimentate la 3,3V &#351;i nu la 5V ca restul circuitului, de aceea mai avem nevoie &#351;i de o surs&#259; de tensiune de 3,3V care s&#259; ofere Vcc pentru card.</p>
<p>Utilizatorul va comunica cu programul prin intermediul portului serial &#351;i a unui program dedicat (de exemplu hyperterminal). El va putea decide dac&#259; dore&#351;te s&#259; codeze sau s&#259; decodeze un text, va putea s&#259; introduc&#259; parola &#351;i eventual textul care trebuie codat.</p>
<p><img src="http://proiecte.strainu.ro/ProiectPM/PROIECT_PM_images/dcxjtbqh_1cbbjk2.jpg" style="width: 800px; height: 600px;" title="Proiectul functional" align="middle"/></p>
</p>
<p><a name="Partea_hardware" id="Partea_hardware"></a></p>
<h2> <span class="mw-headline">Partea hardware</span></h2>
<p>Schema electric&#259; a întregului ansamblu: <br /><a href="http://proiecte.strainu.ro/ProiectPM/PROIECT_PM_images/dcxjtbqh_6g2r4xj.jpg"><img src="http://proiecte.strainu.ro/ProiectPM/PROIECT_PM_images/dcxjtbqh_6g2r4xj.jpg" style="width: 604px; height: 440px;"/></a></p>
<p> Schema folosit&#259; la simulare. Se observ&#259; folosirea SPI debugger în locul cardului SD/MMC<br />
<a href="http://proiecte.strainu.ro/ProiectPM/PROIECT_PM_images/dcxjtbqh_5f3nxqr.jpg"><img src="http://proiecte.strainu.ro/ProiectPM/PROIECT_PM_images/dcxjtbqh_5f3nxqr.jpg" style="width: 604px; height: 440px;"/></a></p>
<p></p>
<p><a name="Comunicarea_cu_cardul" id="Comunicarea_cu_cardul"></a></p>
<h3> <span class="mw-headline">Comunicarea cu cardul</span></h3>
<p>Comunicarea se face prin trimiterea de comenzi c&#259;tre card &#351;i primirea r&#259;spunsurilor. În total exist&#259; 15 comenzi &#351;i 3 r&#259;spunsuri, pe care îns&#259; nu le vom descrie aici. Pentru o desciere am&#259;nun&#355;it&#259;, vezi [4]. Citirea/scrierea se fac pe blocuri, dimensiunea implicit&#259; fiind de 512 octe&#355;i. Multe carduri nu permit schimbarea acestei dimensiuni, de&#351;i protocolul prevede &#351;i aceast&#259; posibilitate.</p>
<p>Comunicarea are 3 componente:</p>
<ol>
<li>Initializarea</li>
<li>Citirea</li>
<li>Scrierea</li>
</ol>
<p><a name="Initializarea" id="Initializarea"></a></p>
<h4> <span class="mw-headline">Initializarea</span></h4>
<p>În primul rând cardul trebuie resetat. Acest lucru se face trimi&#355;ând comanda 0, la care cardul trebuie s&#259; r&#259;rpund&#259; cu 0&#215;01 (ceea ce înseamn&#259; c&#259; a intrat în starea IDLE). Apoi se face ini&#355;ializare propriu zis&#259;, în care se trimite comanda 1 &#351;i se asteapt&#259; r&#259;spunsul 0&#215;00. Ini&#355;ializarea poate dura câteva zeci de milisecunde, timp în care se va primi altceva.</p>
<p><a name="Citirea" id="Citirea"></a></p>
<h4> <span class="mw-headline">Citirea</span></h4>
<p>În cadrul acestui proiect vom face numai citirea unui singur bloc. Se va trimite comanda 17 cu un argument ce reprezint&#259; numarul de octe&#355;i de la începutul cardului de la care se va face citirea. R&#259;spunsul primit trebuie s&#259; fie 0xFE, altfel avem eroare. Dac&#259; nu avem eroare, va urma un bloc de date &#351;i 2 octe&#355;i reprezentând CRC-ul blocului. În aceast&#259; aplica&#355;ie am decis s&#259; ignor&#259;m acest câmp.</p>
<p><a name="Scrierea" id="Scrierea"></a></p>
<h4> <span class="mw-headline">Scrierea</span></h4>
<p>Scrierea va fi tot pe un bloc. Se va trimite comanda 24, se va a&#351;tepta r&#259;spunsul plus timpul necesar înc&#259; unui octet, apoi se vor trimite datele. Dup&#259; terminarea transmisiei, cardul va trimite imediat un r&#259;spuns, urmat de o perioad&#259; de BUSY în care se va face efectiv scrierea, &#351;i în care trebuie s&#259; a&#351;tept&#259;m cardul s&#259; devin&#259; disponibil.</p>
<p>Comunicarea cu seriala Atmel ATmega16 are inclus&#259; posibilitatea de comunica&#355;ie pe serial&#259;. Func&#355;iile implementate asigur&#259; conversia dintre \r\n &#351;i \n. În plus, am folosit macroul FDEV_SETUP_STREAM pentru a putea folosi seriala ca intrare/ie&#351;ire standard.</p>
<p></p>
<p><a name="Lista_componentelor_necesare" id="Lista_componentelor_necesare"></a></p>
<h3> <span class="mw-headline">Lista componentelor necesare</span></h3>
<p>Lista cuprinde doar componentele suplimentare fa&#355;&#259; de cele folosite în pl&#259;cu&#355;a comun&#259;. Pentru lista componentelor folosite la pl&#259;cu&#355;&#259;, vezi <a href="http://learningcenter.ncit.pub.ro/mod/resource/view.php?id=359">aici</a>.</p>
<p></p>
<table border="1">
<tr>
<td>Cititor carduri SD/MMC</td>
<td>1 bucat&#259;</td>
<td>Comet S.R.L.</td>
</tr>
<tr>
<td>Rezisten&#355;e de 1K8</td>
<td>3 buc&#259;&#355;i</td>
<td>Comet S.R.L.</td>
</tr>
<tr>
<td>Rezisten&#355;e de 3K3</td>
<td>3 buc&#259;&#355;i</td>
<td>Comet S.R.L.</td>
</tr>
<tr>
<td>Stabilizator tensiune de 3,3V</td>
<td>1 bucat&#259;</td>
<td>Comet S.R.L.</td>
</tr>
<tr>
<td>Condensatori de 100nF</td>
<td>2 buc&#259;&#355;i</td>
<td>r&#259;ma&#351;i de la faza 1</td>
</tr>
</table>
<p></p>
<p><a name="Partea_software" id="Partea_software"></a></p>
<h2> <span class="mw-headline">Partea software</span></h2>
<p>Programul rulat de microcontroler folose&#351;te portul serial pentru a primi informa&#355;ii de la utilizator. Acesta trebuie s&#259; aleag&#259; dac&#259; dore&#351;te s&#259; codeze sau s&#259; decodeze text.</p>
<p><a name="CODARE" id="CODARE"></a></p>
<h3> <span class="mw-headline">CODARE</span></h3>
<p>La codare, utilizatorul trebuie s&#259; introduc&#259; parola cu care se face codarea precum &#351;i textul de codat. Rezultatul cod&#259;rii este scris în sectorul 1 al cardului MMC</p>
<p><a name="DECODARE" id="DECODARE"></a></p>
<h3><span class="mw-headline">DECODARE</span></h3>
<p>La decodare, utilizatorul va introduce parola &#351;i programul va decoda textul. Dac&#259; parola este corect&#259;, textul va avea sens, dac&#259; nu, cel mai probabil vom avea caractere din setul ASCII extins, eventual neafi&#351;abile.</p>
<p><a name="LIMIT.C4.82RI" id="LIMIT.C4.82RI"></a></p>
<h3><span class="mw-headline">LIMIT&#258;RI</span></h3>
<p>Datorit&#259; limit&#259;rilor hardware (doar 512 octe&#355;i de RAM) &#351;i a faptului c&#259; algoritmul ARCFOUR folose&#351;te un vector de 256 de elemente, limita pentru lungimea parolei este de 8 caractere (64 de bi&#355;i) &#351;i lungimea textului este de maxim250 de caractere. Teoretic s-ar putea dezvolta o metod&#259; prin care cei 256 de octe&#355;i ar putea fi redu&#351;i la 224, ceea ce ar elibera înc&#259; 32 de octe&#355;i, îns&#259; aceast&#259; metod&#259; ar fi mare consumatoare de timp.</p>
<p>O alt&#259; solu&#355;ie ar fi citirea câte 250 de caractere pân&#259; la finalizarea textului, îns&#259; acest lucru ar putea crea confuzie pentru anumi&#355;i utilizatori.</p>
<p><a name="STRUCTURA_PROGRAMULUI" id="STRUCTURA_PROGRAMULUI"></a></p>
<h3> <span class="mw-headline">STRUCTURA PROGRAMULUI</span></h3>
<p>Pe lâng&#259; programul principal, codul mai are 3 module: unul care se ocup&#259; de comunicarea pe serial&#259;, altul care se ocup&#259; de comunicarea cu cardul MMC &#351;i a treia care se ocup&#259; efectiv de codare.</p>
<p><a name="UNELTE_SOFTWARE" id="UNELTE_SOFTWARE"></a></p>
<h3> <span class="mw-headline">UNELTE SOFTWARE</span></h3>
<p>Pentru acest proiect am folosit avr-studio, win-avr pentru compilatorul gcc-avr &#351;i Proteus pentru simulare.</p>
<p><a name="Concluzii" id="Concluzii"></a></p>
<h2> <span class="mw-headline">Concluzii</span></h2>
<p>Datorit&#259; problemelor software men&#355;ionate la punctul anterior dispozitivul nu poate fi utilizat în lumea real&#259;. Dac&#259; problemele acestea ar fi dep&#259;&#351;ite, proiectul ar putea fi cu adev&#259;rat util. Printre dezvolt&#259;rile ulterioare ce ar putea fi realizate a&#351; enumera folosirea unui algoritm de criptare mai performant (sl&#259;biciunile lui ARCFOUR au fost demonstrate de spargerea cript&#259;rii WEP), critarea fi&#351;ierelor &#351;i/sau a directoarelor, etc. Dac&#259; la faza 2 am spus c&#259; voi folosi întreruperi pentru a decide dac&#259; e vorba de codare sau decodare, pân&#259; la urm&#259; am renun&#355;at la aceast&#259; solu&#355;ie ca fiind nepractic&#259; (se poate uita foarte u&#351;or s&#259; se apese pe buton). Singura problem&#259; hardware cu adev&#259;rat dificil&#259; a fost defectarea stabilizatorului de 3,3V. Cum toate magazinele de specialitate erau în inventar, am recurs la o schem&#259; de stabilizare folosind o diod&#259; Zener &#351;i o rezisten&#355;&#259; de 100&#937;, care d&#259; o tensiune de aproximativ 3,2V, în limitele de func&#355;ionare ale cardului.</p>
<p><a name="Referinte_.C5.9Fi_Link-uri" id="Referinte_.C5.9Fi_Link-uri"></a></p>
<h2><span class="mw-headline">Referinte &#351;i Link-uri</span></h2>
<ol>
<li>Schema electric&#259; pentru MMC: <a href="http://www.captain.at/electronic-atmega-mmc.php" class="external free" title="http://www.captain.at/electronic-atmega-mmc.php" rel="nofollow">http://www.captain.at/electronic-atmega-mmc.php</a></li>
<li>Codarea RC4: <a href="http://en.wikipedia.org/wiki/RC4" class="external free" title="http://en.wikipedia.org/wiki/RC4" rel="nofollow">http://en.wikipedia.org/wiki/RC4</a></li>
<li>Date tehnice MMC: <a href="http://mmc.drzeus.cx/wiki/" class="external free" title="http://mmc.drzeus.cx/wiki/" rel="nofollow">http://mmc.drzeus.cx/wiki/</a></li>
<li>Comenzi MMC în modul SPI: <a href="http://elm-chan.org/docs/mmc/mmc_e.html" class="external free" title="http://elm-chan.org/docs/mmc/mmc_e.html" rel="nofollow">http://elm-chan.org/docs/mmc/mmc_e.html</a></li>
</ol>
<div class='sociable'><div><span class='sociable-tagline'><strong>Share and Enjoy:</strong></span></div><ul><li><a rel="nofollow" target="_blank"  href="http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.strainu.ro%2Fprojects%2Fmasina-de-codare-cu-algoritmul-arcfour-si-microcontrollerul-atmel-atmega16%2F&amp;t=Ma%C5%9Fin%C4%83%20de%20codare%20cu%20algoritmul%20ARCFOUR%20%C5%9Fi%20microcontrollerul%20Atmel%20ATmega16" ><img src="http://www.strainu.ro/site/wp-content/plugins/sociable-30/images/default/16/facebook.png" class="sociable-img sociable-hovers" title="Facebook" alt="Facebook" /></a></li><li><a rel="nofollow" target="_blank"  href="http://twitter.com/home?status=Ma%C5%9Fin%C4%83%20de%20codare%20cu%20algoritmul%20ARCFOUR%20%C5%9Fi%20microcontrollerul%20Atmel%20ATmega16%20-%20http%3A%2F%2Fwww.strainu.ro%2Fprojects%2Fmasina-de-codare-cu-algoritmul-arcfour-si-microcontrollerul-atmel-atmega16%2F" ><img src="http://www.strainu.ro/site/wp-content/plugins/sociable-30/images/default/16/twitter.png" class="sociable-img sociable-hovers" title="Twitter" alt="Twitter" /></a></li><li><a rel="nofollow" target="_blank"  href="http://identi.ca/notice/new?status_textarea=http%3A%2F%2Fwww.strainu.ro%2Fprojects%2Fmasina-de-codare-cu-algoritmul-arcfour-si-microcontrollerul-atmel-atmega16%2F" ><img src="http://www.strainu.ro/site/wp-content/plugins/sociable-30/images/default/16/identica.png" class="sociable-img sociable-hovers" title="Identi.ca" alt="Identi.ca" /></a></li><li><a rel="nofollow" target="_blank"  href="mailto:?subject=Ma%C5%9Fin%C4%83%20de%20codare%20cu%20algoritmul%20ARCFOUR%20%C5%9Fi%20microcontrollerul%20Atmel%20ATmega16&amp;body=http%3A%2F%2Fwww.strainu.ro%2Fprojects%2Fmasina-de-codare-cu-algoritmul-arcfour-si-microcontrollerul-atmel-atmega16%2F" ><img src="http://www.strainu.ro/site/wp-content/plugins/sociable-30/images/default/16/email_link.png" class="sociable-img sociable-hovers" title="email" alt="email" /></a></li><li><a rel="nofollow" target="_blank" title="Add to favorites" href="#" onclick="AddToFavorites(); return false;"><img src="http://www.strainu.ro/site/wp-content/plugins/sociable-30/images/default/16/addtofavorites.png" class="sociable-img sociable-hovers" title="Add to favorites" alt="Add to favorites" /></a></li><li><a rel="nofollow" target="_blank"  href="http://digg.com/submit?phase=2&amp;url=http%3A%2F%2Fwww.strainu.ro%2Fprojects%2Fmasina-de-codare-cu-algoritmul-arcfour-si-microcontrollerul-atmel-atmega16%2F&amp;title=Ma%C5%9Fin%C4%83%20de%20codare%20cu%20algoritmul%20ARCFOUR%20%C5%9Fi%20microcontrollerul%20Atmel%20ATmega16&amp;bodytext=%0D%0A%0D%0A%0D%0A%0D%0APentru%20versiunea%20original%26%23259%3B%20a%20articolului%2C%20inclusiv%20codul%2C%20vezi%20pagina%20de%20proiecte.%0D%0A%0D%0A%0D%0A%0D%0A%0D%0ACuprins%0D%0A%0D%0A%0D%0A1%20Ideea%20proiectului%0D%0A%0D%0A1.1%20Codarea%0D%0A1.2%20Decodarea%0D%0A%0D%0A%0D%0A%0D%0A2%20Modalitatea%20de%20implementare%0D%0A3%20Partea%20hardware%0D%0A%0D%0A3.1%20Comunicarea%20cu%20card" ><img src="http://www.strainu.ro/site/wp-content/plugins/sociable-30/images/default/16/digg.png" class="sociable-img sociable-hovers" title="Digg" alt="Digg" /></a></li><li><a rel="nofollow" target="_blank"  href="http://www.stumbleupon.com/submit?url=http%3A%2F%2Fwww.strainu.ro%2Fprojects%2Fmasina-de-codare-cu-algoritmul-arcfour-si-microcontrollerul-atmel-atmega16%2F&amp;title=Ma%C5%9Fin%C4%83%20de%20codare%20cu%20algoritmul%20ARCFOUR%20%C5%9Fi%20microcontrollerul%20Atmel%20ATmega16" ><img src="http://www.strainu.ro/site/wp-content/plugins/sociable-30/images/default/16/stumbleupon.png" class="sociable-img sociable-hovers" title="StumbleUpon" alt="StumbleUpon" /></a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://www.strainu.ro/projects/masina-de-codare-cu-algoritmul-arcfour-si-microcontrollerul-atmel-atmega16/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
	</channel>
</rss>

