Indeed, it is as toscho has said. index.php and style.css are the bare minumum.
Developers like to separate things, though, so instead of having one index.php file to rule all, you’ll find parts like:
header.php
footer.php
sidebar.php
index.php
style.css
functions.php
and additional templates like ones you mentioned in the question.
This page will show you how its done at the minimum level.