Был уже вопрос. Есть интересный курс MIT по этому поводу. wzlom.info
...................................................