How to use index.php as a template for archives?

I haven’t tested this but in your archive.php file in the child theme use the following command to output the index.php file contents.

<?php
get_template_part( 'index' );
?>

This way you can have all the code in your index.php file but use it elsewhere preventing the duplication.

If you don’t want to create an archive.php file then use this filter.

add_filter( 'template_include', 'archive_home_page_template', 99 );

function archive_home_page_template( $template ) {

    if ( is_archive() OR is_front_page() ) {
        $new_template = locate_template( array( 'index.php' ) );
        if ( '' != $new_template ) {
            return $new_template;
        }
    }

    return $template;
}