luni, 31 ianuarie 2011

Universul elegant




Film documentar:

Programul de televiziune difuzat de PBS se constituie într-o miniserie de trei episoade.

În prima parte a seriei, "Visul lui Einstein", ni se face o introducere în teoria stringurilor, dar şi o prezentare a celor două direcţii majore în care s-a dezvoltat fizica modernă, două teorii aparent incompatibile - relativitatea generală (care descrie cu succes Universul la nivel macro: stelele, sistemele solare sau galaxiile) şi mecanica cuantică (unde se explică fenomenele care au loc în lumea constituenţilor fundamentali ai materiei - atomii şi particulele subatomice).

Albert Einstein, inventatorul relativităţii generale, a visat până la sfârşitul vieţii să găsească o teorie unificatoare care să descrie toate faţetele Universului în care trăim. Nu a reuşit, iar provocarea a fost transmisă mai departe viitoarelor generaţii de fizicieni. Asta până la descoperirea teoriei stringurilor, susţin autorii miniseriei.






În episodul doi călătoria către Marea Teorie Unificatoare continuă. Intitulată "String's the thing", partea a doua a seriei prezintă ideile care au dat naştere teoriei stringurilor, cum a apărut Modelul Standard al particulelor elementare, ne face cunoştinţă cu lumea multidimensională pe care o implică acest nou design al Universului, cât şi cu variantele teoretice ale acestei extraordinare încercări de a găsi ecuaţia magică în stare să descrie toate faţetele realităţii vizibile şi invizibile.




Ultima parte a a seriei, intitulată "Bine aţi venit într-a 11-a dimensiune!" înfăţişează povestea lui Edward Witten. În 1995, acesta, ajutat de colaboratorii săi de la Institutul Princeton pentru Studii Avansate, a revoluţionat teoria stringurilor reuşind să unifice cu succes cele 5 versiuni diferite ale teoriei care existau pe atunci într-o teorie unică botezată "M-theory", un model matematic care presupune existenţa a 11 dimensiuni.

vineri, 21 ianuarie 2011

Ecuaţia de gradul 2

ax2 + bx + c =0, unde a,b,c ≠ 0 si a, b, c € R

după normare ai = b/a , bi = c/a                                                       (1)

x2 – aix + bi = 0                                                                                 (1’)

fie X1 si X2 soluţiile  ecuaţiei de gradul 2

(x – X1)(x – X2) = 0 =>

x2 – (X1 + X2)x +X1X2 = 0                                                              (2)

din (1’) si (2) rezulta că soluţiile ecuaţiei trebuie să satisfacă următoarea egalitate:

X1 + X2 =  ai                                                                                     (3)
X1X2 = bi

Putem alege în mod convenabil  X1 şi X2 astfel încât:
X1 = ai/2 + D                                                                                     (4) 
X2 = ai/2 – D
(unde D € R)

Din (3) si (4) =>

X1 + X2 = (ai/2 + D) + (ai/2 – D) = ai                                               (5)
=>
X1X2 = (ai/2 + D) (ai/2 – D) = ai2/4 – D2 = bi                                   (6)

Din (6) putem obţine valoarea lui D:

D = rad (ai2/4 – bi)                                                                              (7)

Înlocuind pe D în (4) =>

X1 = ai/2 + rad (ai2/4 – bi)                                                                   (4’)                                                                                                                                                                 
X2 = ai/2 – rad (ai2/4 – bi)

(4’) + (1’) =>

X1 = (– b + rad (b2 – 4ac))/2a                                                             (4’)                                                                                                                                                                
X2 = (– b – rad (b2 – 4ac))/2a                                                             

Teorema lui Pitagora

În orice triunghi dreptunghic, pătratul lungimii ipotenuzei este egal cu suma pătratelor lungimilor catetelor. (AB2 = AC2 + CB2)


Demonstraţie:

1. Din asemănarea triunghiurilor ADC si ACB =>
AD/AC=AC/AB => AD = AC2/AB

2. Din asemănarea triunghiurilor
DB/CB=CB/AB =>  DB = CB2/AB

3. AD+DB=AB

Înlocuind 1. şi 2. in 3. =>

AB = AC2/AB + CB2/AB => AB2 = AC2 + CB2

q.e.d. 

vineri, 12 noiembrie 2010

1. OpenVPN Server (Ubuntu)

Scenariu 1: Remote Access VPN
Ref:
http://openvpn.net/index.php/open-source/documentation/howto.html
http://www.cosmosul.ro/software/linux-openvpn-howto.html


Cerinte:
Se doreste instalarea unui server VPN intr-o retea locala, care sa deserveasca clienti VPN remote


Date:
- Capatul de tunnel este terminat pe serverul dedicat VPN (172.16.1.10)
- Routerul de acces, ce face NAT pentru clasa 172.16.1.10, forwardeaza portul TCP/1194 catre serverul VPN si deschide in chainul FORWARD portul TCP/1194
- Serverul VPN are reguli de acces firewall pentru permiterea portului TCP/1194
- Serverul VPN aloca un ip dinamic laptop-ului din clasa 10.8.0.0/24 si impune o ruta catre clasa interna 172.16.1.10/24 prin acel IP

1. Prezentare generala
OpenVPN este o solutie SSL VPN open source ce acopera o multitudine de configuratii, incluzand accesul de la distanta, site-to-site VPN, securitate Wi-Fi, solutii profesionale pentru companii de acces la distanta. OpenVPN ofera o alternativa robusta si ieftina pentru companii fata de alte tehnologii VPN. OpenVPN NU este un proxy web si nu este destinat sa opereze prin intermediul unui browser web

2. Instalare OpenVPN 2.0

# cd /opt/src
# wget http://openvpn.net/release/openvpn-2.1.3.tar.gz
# tar –zxvf openvpn-2.1.3.tar.gz
# cd openvpn-2.1.3
# ./configure --prefix=/opt/openvpn --disable-lzo
# make
# make install


3. Configurarea infrastructurii PKI (Public Key Infrastructure)

OpenVPN necesita autentificare bidirectionala bazata pe certificate, ceea ce inseamna atat clientul trebuie sa se autentifice catre server, cat si serverul trebuie sa se autentifice catre client. In acel moment, se poate stabili o conexiune VPN (sub rezerva parametrilor VPN, care trebuie sa fie compatibili pentru ambele parti).
Atat serverul VPN, cat si clientul VPN se autentifica unul catre celalalt, verificand daca certificatul celeilalte parti este semnat de Root CA si apoi testand datele din acest certificat (de ex: Common Name, Certificate Type – Server/Client, etc). Din acest punct de vedere, OpenVPN aduce un plus de beneficii:
- Serverul VPN are doar un singur certificate si o singura cheie – nu are nevoie sa cunoasca fiecare certificat al fiecarui client VPN
- Serverul VPN va accepta conexiuni de la clienti VPN doar daca acestia prezinta certificate semnate de Root CA. Acest Root CA poate fi configurat pe o alta masina, dar pentru simplitate vom presupune ca atat Root CA cat si serverul VPN se afla pe aceeasi masina
- Daca se banuieste ca o cheie privata a unui client a fost compromisa, certificatul acelui client poate fi inclus intr-un CRL (Certificate Revocation List). Aceste CRL poate fi folosit pentru a respinge conexiuni de la clienti ce se autentifica cu un astfel de certificat, fara a mai fi nevoie de a recrea intreaga infrastructura PKI
- Serverul VPN poate impune drepturi de acces diferentiate pentru anumiti clienti VPN, prin intermediul campurilor din certificatul clientului (de ex: Common Name)

Pentru crearea acestei infrastructuri PKI, este nevoie de urmatoarele:
1. Un certificat autosemnat pentru Root CA si o cheie privata pentru semnarea certificatelor serverului VPN si a clientilor VPN
2. Un certificat separat (si o cheie) pentru serverul VPN – semnat de Root CA
3. Cate un certificat (si o cheie) pentru fiecare dintre clientii VPN – semnat de Root CA

3.1. Generarea certificatului (si cheia) pentru Root CA
# cp -r /opt/src/openvpn-2.1.3/easy-rsa /opt/openvpn
# cd /opt/openvpn/easy-rsa/2.0
# vi vars
export KEY_COUNTRY="RO"
export KEY_PROVINCE="RO"
export KEY_CITY="Bucharest"
export KEY_ORG="vocalNET SRL"
export KEY_EMAIL=postmaster@vocalnet.eu

#. ./vars
# ./clean-all
# root@mail:/opt/openvpn/easy-rsa/2.0# ./build-ca
Generating a 1024 bit RSA private key
.........................++++++
..............................++++++
writing new private key to 'ca.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [RO]:

State or Province Name (full name) [RO]:

Locality Name (eg, city) [Bucharest]:

Organization Name (eg, company) [vocalNET SRL]:

Organizational Unit Name (eg, section) []:

Common Name (eg, your name or your server's hostname) [vocalNET SRL CA]:

Name []:

Email Address [postmaster@vocalnet.eu]:

Rezultate:
- certificat Root CA: /opt/openvpn/easy-rsa/2.0/keys/ca.crt
- cheie privata Root CA: /opt/openvpn/easy-rsa/2.0/keys/ca.key

3.2. Generarea certificatului (si cheia) pentru Serverul VPN
# cd /opt/openvpn/easy-rsa/2.0
# ./build-key-server server
./build-key-server server
Generating a 1024 bit RSA private key
..................................................................++++++
..................................++++++
writing new private key to 'server.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [RO]:
State or Province Name (full name) [RO]:
Locality Name (eg, city) [Bucharest]:
Organization Name (eg, company) [vocalNET SRL]:
Organizational Unit Name (eg, section) []:
Common Name (eg, your name or your server's hostname) [server]:
Name []:
Email Address [postmaster@vocalnet.eu]:

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Using configuration from /opt/openvpn/easy-rsa/2.0/openssl.cnf
Check that the request matches the signature
Signature ok
The Subject's Distinguished Name is as follows
countryName :PRINTABLE:'RO'
stateOrProvinceName :PRINTABLE:'RO'
localityName :PRINTABLE:'Bucharest'
organizationName :PRINTABLE:'vocalNET SRL'
commonName :PRINTABLE:'server'
emailAddress :IA5STRING:'postmaster@vocalnet.eu'
Certificate is to be certified until Sep 10 21:09:34 2020 GMT (3650 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
Write out database with 1 new entries
Data Base Updated